mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 21:36:47 +02:00
commit
50e9646f03
3 changed files with 330 additions and 1 deletions
|
@ -65,7 +65,7 @@ colors[4] = { red: 236, green: 174, blue: 0 };
|
||||||
colors[5] = { red: 234, green: 133, blue: 0 };
|
colors[5] = { red: 234, green: 133, blue: 0 };
|
||||||
colors[6] = { red: 211, green: 115, blue: 0 };
|
colors[6] = { red: 211, green: 115, blue: 0 };
|
||||||
colors[7] = { red: 48, green: 116, blue: 119 };
|
colors[7] = { red: 48, green: 116, blue: 119 };
|
||||||
colors[8] = { red: 31, green: 64, blue: 64 };
|
colors[8] = { red: 36, green: 64, blue: 64 };
|
||||||
var numColors = 9;
|
var numColors = 9;
|
||||||
var whichColor = 0; // Starting color is 'Copy' mode
|
var whichColor = 0; // Starting color is 'Copy' mode
|
||||||
|
|
||||||
|
|
226
examples/voxelsoundwaves.js
Normal file
226
examples/voxelsoundwaves.js
Normal file
|
@ -0,0 +1,226 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var wallX = 8000;
|
||||||
|
var wallY = 8000;
|
||||||
|
var wallZ = 8000;//location
|
||||||
|
|
||||||
|
|
||||||
|
var VOXELSIZE=12;//size of each voxel
|
||||||
|
|
||||||
|
var FACTOR = 0.75;
|
||||||
|
|
||||||
|
var loud=1.0;
|
||||||
|
var maxLoud=500;
|
||||||
|
var minLoud=200;//range of loudness
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var maxB={color:225,direction:0,speed:1};
|
||||||
|
var minB={color:50,direction:1,speed:1};
|
||||||
|
var maxG={color:200,direction:0,speed:1};
|
||||||
|
var minG={color:30,direction:1,speed:1};
|
||||||
|
var maxR={color:255,direction:0,speed:1};
|
||||||
|
var minR={color:150,direction:1,speed:1};//color objects
|
||||||
|
var addVoxArray=[];
|
||||||
|
var removeVoxArray=[];
|
||||||
|
var numAddVox=0;
|
||||||
|
var numRemoveVox=0;//array for voxels removed and added
|
||||||
|
|
||||||
|
|
||||||
|
var height;
|
||||||
|
var wallWidth=34;
|
||||||
|
var wallHeight=25;
|
||||||
|
var maxHeight=wallHeight;
|
||||||
|
var minHeight=0;//properties of wall
|
||||||
|
|
||||||
|
|
||||||
|
var heightSamplesArray=[];
|
||||||
|
var sampleIndex=0;//declare new array of heights
|
||||||
|
|
||||||
|
var direction=1;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//initiate and fill array of heights
|
||||||
|
for(var k=0;k<wallWidth;k++)
|
||||||
|
{
|
||||||
|
heightSamplesArray[k]=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//send objects to function changeColor
|
||||||
|
function scratch()
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
changeColor(maxB);
|
||||||
|
changeColor(minB);
|
||||||
|
changeColor(maxG);
|
||||||
|
changeColor(minG);
|
||||||
|
changeColor(maxR);
|
||||||
|
changeColor(minR);
|
||||||
|
|
||||||
|
//calculates loudness
|
||||||
|
var audioAverageLoudness = MyAvatar.audioAverageLoudness * FACTOR;
|
||||||
|
|
||||||
|
|
||||||
|
loud = Math.log(audioAverageLoudness) / 5.0 * 255.0;
|
||||||
|
|
||||||
|
print("loud="+ loud);
|
||||||
|
|
||||||
|
|
||||||
|
var scalingfactor=(loud-minLoud)/(maxLoud-minLoud);
|
||||||
|
if(scalingfactor<0)
|
||||||
|
{
|
||||||
|
scalingfactor=0;
|
||||||
|
}
|
||||||
|
if(scalingfactor>1)
|
||||||
|
{
|
||||||
|
scalingfactor=1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//creates diff shades for diff levels of volume
|
||||||
|
|
||||||
|
var green=(maxG.color-minG.color)*scalingfactor+minG.color;
|
||||||
|
var blue=(maxB.color-minB.color)*scalingfactor+minB.color;
|
||||||
|
var red=(maxR.color-minR.color)*scalingfactor+minR.color;
|
||||||
|
height=(maxHeight-minHeight)*scalingfactor+minHeight;
|
||||||
|
|
||||||
|
|
||||||
|
//sets height at position sampleIndex
|
||||||
|
heightSamplesArray[sampleIndex]=height;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if(loud==Number.NEGATIVE_INFINITY)
|
||||||
|
{
|
||||||
|
green=minG.color;
|
||||||
|
blue=minB.color;
|
||||||
|
red=minR.color;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var k=sampleIndex;
|
||||||
|
|
||||||
|
//add&remove voxels
|
||||||
|
|
||||||
|
for(var i=wallWidth-1;i>=0;i--)
|
||||||
|
{
|
||||||
|
|
||||||
|
for(var j=0;j<wallHeight;j++)
|
||||||
|
|
||||||
|
{
|
||||||
|
if(j<=heightSamplesArray[k])
|
||||||
|
{
|
||||||
|
addVoxArray[numAddVox]={x:wallX+i*VOXELSIZE, y:wallY+j*VOXELSIZE, z:wallZ};
|
||||||
|
|
||||||
|
numAddVox++;
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
removeVoxArray[numRemoveVox]={x:wallX+i*VOXELSIZE, y:wallY+j*VOXELSIZE, z:wallZ};
|
||||||
|
|
||||||
|
numRemoveVox++;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
k--;
|
||||||
|
if(k<0)
|
||||||
|
{
|
||||||
|
k=wallWidth-1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
for(var k=0;k<numAddVox;k++)
|
||||||
|
{
|
||||||
|
Voxels.setVoxel(addVoxArray[k].x,addVoxArray[k].y,addVoxArray[k].z,VOXELSIZE, red, green, blue);
|
||||||
|
}
|
||||||
|
|
||||||
|
for(var k=0;k<numRemoveVox;k++)
|
||||||
|
{
|
||||||
|
Voxels.eraseVoxel(removeVoxArray[k].x,removeVoxArray[k].y,removeVoxArray[k].z,VOXELSIZE);
|
||||||
|
}
|
||||||
|
|
||||||
|
numAddVox=0;
|
||||||
|
numRemoveVox=0;
|
||||||
|
|
||||||
|
sampleIndex++;
|
||||||
|
if(sampleIndex>=wallWidth)
|
||||||
|
{
|
||||||
|
sampleIndex=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//color properties (shade, direction, speed)
|
||||||
|
|
||||||
|
function changeColor(color)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (color.direction==1)
|
||||||
|
{
|
||||||
|
if(color.color<255)
|
||||||
|
{
|
||||||
|
color.color+=(color.speed);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
color.direction=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else if(color.direction==0)
|
||||||
|
{
|
||||||
|
if(color.color>0)
|
||||||
|
{
|
||||||
|
color.color-=(color.speed);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
color.direction=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Script.update.connect(scratch);
|
||||||
|
Voxels.setPacketsPerSecond(20000);
|
||||||
|
|
103
examples/voxelwall.js
Normal file
103
examples/voxelwall.js
Normal file
|
@ -0,0 +1,103 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var wallX = 700;
|
||||||
|
var wallY = 700;
|
||||||
|
var wallZ = 700;//location
|
||||||
|
|
||||||
|
var VOXELSIZE=8;
|
||||||
|
var red=225;
|
||||||
|
var blue=0;
|
||||||
|
var green=0;//color brightness
|
||||||
|
var currentStep=0;//counting number of steps
|
||||||
|
var direction=1;//left to right color change
|
||||||
|
var height=8;
|
||||||
|
var width=8;
|
||||||
|
|
||||||
|
|
||||||
|
var currentStep=0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function step()
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
currentStep++;
|
||||||
|
|
||||||
|
if(currentStep>6000)//how long it will run
|
||||||
|
Script.stop();
|
||||||
|
|
||||||
|
|
||||||
|
for(var i=0;i<width;i++)
|
||||||
|
{
|
||||||
|
for(var j=0;j<height;j++)
|
||||||
|
{
|
||||||
|
|
||||||
|
Voxels.setVoxel(wallX+i*VOXELSIZE, wallY+j*VOXELSIZE, wallZ, VOXELSIZE, red,green,blue);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (direction==1)
|
||||||
|
{
|
||||||
|
if(blue<255)
|
||||||
|
{
|
||||||
|
blue++;
|
||||||
|
red--;
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
direction=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else if(direction==0)
|
||||||
|
{
|
||||||
|
if(blue>0)
|
||||||
|
{
|
||||||
|
blue--;
|
||||||
|
red++;
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
direction=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Script.update.connect(step);
|
||||||
|
Voxels.setPacketsPerSecond(20000);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue