- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要将 THREE.Mesh 的实例定位为始终面向相机。我知道我可以只使用 [THREE.Mesh].lookAt() 方法,但我正在尝试更多地处理我的 GLSL 印章,并希望能够在顶点着色器中执行此操作。
我已通读 NeHe's Billboarding tutorial ,这对我来说很有意义。好吧,除了将这些方向向量应用于每个顶点的那一点。
我觉得我已经非常接近这个工作了,但就目前而言,我的顶点着色器看起来更像是 90 年代狂欢视频而不是广告牌:
到目前为止的进展:http://jsfiddle.net/RZ4XE/2/
下面是我的顶点着色器(片段着色器只是分配了一个 vec4 颜色)。它利用了 THREE.js 提供的各种默认制服/属性,在下面列出以防不熟悉 THREE.js 的人正在阅读本文:)
cameraPosition
(vec3), position
(顶点位置,另一个vec3),projectionMatrix
(相机的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] = up.x;
transformMatrix[1][1] = up.y;
transformMatrix[1][2] = up.z;
transformMatrix[2][0] = look.x;
transformMatrix[2][1] = look.y;
transformMatrix[2][2] = look.z;
gl_Position = projectionMatrix * modelViewMatrix * transformMatrix * vec4( position, 1.0 );
}
提前致谢。
最佳答案
显然这是可行的:
gl_Position = projectionMatrix * (modelViewMatrix * vec4(0.0, 0.0, 0.0, 1.0) + vec4(position.x, position.y, 0.0, 0.0));
我实际上是在想办法制作轴对齐的广告牌。
关于javascript - THREE.js - 广告牌顶点着色器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22053932/
我从我的老师那里得到了一个代码,目前显示了一个 3D 地球和一个 2D 粒子系统。摄像机绕圈移动。粒子系统应该面向相机。 根据我的讲义,我必须将广告牌乘以相机 View 矩阵的逆矩阵。我很想尝试一下,
我需要使节点层次结构中的一个节点面向相机,或者换句话说,成为一个广告牌。对于每个节点,我将其世界矩阵和世界旋转存储为四元数。根据我对四元数的了解,我想要的操作是获取相机四元数和节点的旋转四元数之间的差
我希望能够创建一个 div 并为其指定高度、宽度和类。然后将 div 添加到 Cesium map 作为广告牌。 我可以创建带有图像和标签的广告牌并且还找到了 this有关如何使用 svg 的链接,但
每个人, 我正在尝试对基于Canvas的纹理进行动画处理,该纹理映射到平面上,如广告牌。我已经指出要包括 material.needsUpdate 和 texture.needsUpdate ,但是我
我创建了一个小应用程序来显示单个粒子: 当我围绕场景旋转时,光照发生变化,粒子几乎变得不可见: 是否可以在整个旋转过程中强制设置光照? 相关代码: // init glClear(GL_COLOR_B
我正在使用 LibGDX 博客中描述的 3d 粒子系统(Billboards ar 粒子):https://github.com/libgdx/libgdx/wiki/3D-Particle-Effe
我是一名优秀的程序员,十分优秀!