如何使用glsl

时间:2017-07-04 10:15:39

标签: three.js glsles

我正在尝试使用three.js创建广告牌。我尝试使用THREE.Sprite,但是当我使用透视投影时,精灵的大小会随距离而变化。我尝试使用带自定义着色器的自定义shaderMaterial创建一个平面。

用于缩放广告牌的着色器代码

 vec4 gl_Position = projectionMatrix * (modelViewMatrix * vec4(0.0, 0.0, 0.0, 1.0) + vec4(position.x, position.y, 0.0, 0.0));'

同样适用于非缩放广告牌,我正在尝试实施

float distance = length(modelViewMatrix * vec4(0.0, 0.0, 0.0, 1.0)); 
vec4 newPosition = projectionMatrix * (modelViewMatrix * vec4(0.0, 0.0, 0.0, 1.0) + vec4(position.x, position.y, 0.0, 0.0));
gl_Position= newPosition*distance;

不幸的是输出没有变化。它仍然是规模庞大的广告牌。有什么建议可以解决这个问题吗?

0 个答案:

没有答案