2
このような小さなシェーダがあり、きれいな効果があります。GLSLのブレンディングモードは、追加の透明度を作成します。
uniform float beatScale;
varying vec3 vPos;
void main() {
vec3 normPos = (normalize(vPos) + vec3(1, 1, 1))/vec3(2, 2, 2);
float alpha;
if (normPos.y < beatScale - 0.1) {
alpha = 0.0;
} else if (normPos.y < beatScale) {
alpha = 1.0 - (beatScale - normPos.y)/0.1;
} else {
alpha = 1.0;
}
gl_FragColor = vec4(normPos, alpha);
}
しかし、前に私のオブジェクトの透明部分は、レンダリングされているはずのピクセルをノックアウト、背後にあるオブジェクトをブロックします。
gl_FragColor = gl_FragColor + vec4(normPos, alpha);
しかし、それはそれを変更していないようでした:
マイ申し訳ありませんの試みでした。私はgl_FragColor
が前のピクセルの色を持っていたが、ダイスはなかったと思っていた。
計算された色を以前にあった色に追加するにはどうすればよいですか?私は上に何があるのか気にしない、これは私が単に一緒に追加することができるすべての光沢のあるものです。
three.jsをどうやって作るのですか? –
myWebGLRenderer.getContext()からcontexを取得し、theContext.disable(theContext.DEPTH_TEST)を実行します。 – MikaelEmtinger
(r71) 'material.depthTest'を' false'に設定するだけです。レンダラーは設定を尊重します。 –