我正在尝试使用Web Audio API创建自定义平移控件,但我无法使用通道拆分器和合并节点从正确的通道中获取任何声音:
var context = new webkitAudioContext(),
destination = context.destination,
osc = context.createOscillator(),
gainL = context.createGainNode(),
gainR = context.createGainNode(),
splitter = context.createChannelSplitter(2),
merger = context.createChannelMerger(2);
osc.frequency.value = 500;
osc.connect(splitter);
splitter.connect(gainL, 0);
splitter.connect(gainR, 1);
gainL.connect(merger, 0, 0);
gainR.connect(merger, 0, 1);
osc.noteOn(0);
gainL.gain.value = 0.1;
gainR.gain.value = 0.5;
osc.noteOff(2);
merger.connect(destination);
Run Code Online (Sandbox Code Playgroud)
我错过了一些明显的东西吗?这里有上面代码的JSBin预览:http://jsbin.com/ayijoy/1/
我正在运行Chrome v24.0.1312.57,以防万一.
我需要将THREE.Mesh的一个实例定位为始终面向相机.我知道我可以使用[THREE.Mesh] .lookAt()方法,但我正在尝试更多地使用我的GLSL印章,并希望能够在顶点着色器中执行此操作.
我已经阅读了NeHe的Billboarding教程,这对我来说很有意义.好吧,除了将这些方向向量应用于每个顶点的位之外.
我觉得我非常接近这个工作,但就目前而言,我的顶点着色器看起来更像90年代的狂欢视频而不是广告牌:
到目前为止的进展小提琴:http://jsfiddle.net/RZ4XE/2/
下面是我的顶点着色器(片段着色器只分配一个vec4颜色).它正在利用THREE.js提供的各种默认制服/属性,下面列出以防万一有些不熟悉THREE.js的人正在阅读这个:)
cameraPosition (VEC 3), position (顶点位置,另一个vec3), projectionMatrix (相机的投影矩阵,mat4), modelViewMatrix (camera.matrixWorldInverse*object.matrixWorld,mat4)
void main() {
vec3 look = normalize( cameraPosition - position );
if( length( look ) == 0.0 ) {
look.z = 1.0;
}
vec3 up = vec3( 0.0, 1.0, 0.0 );
vec3 right = normalize( cross( up, look ) );
up = normalize( cross( look, right ) );
mat4 transformMatrix;
transformMatrix[0][0] = right.x;
transformMatrix[0][1] = right.y;
transformMatrix[0][2] = right.z;
transformMatrix[1][0] …Run Code Online (Sandbox Code Playgroud)