1

ライブラリ three.js を使用して WebGL で作業します。私の場合、シーンに 2 つのオブジェクトがあり、ディスプレイ上のオブジェクトを個別に更新したいと考えています。シェーダーを使用してオブジェクトの色を変更します。フラグメント シェーダーの均一パラメーターの値を変更し、オブジェクトの 1 つだけにシェーダーを適用したいと考えています。メッシュに「drawElements」を適用し、新しいパラメータで描画したいと思います。「renderer.render(scene, camera);」をすると すべてのオブジェクトを更新しましたが、それは私が望んでいるものではありません。これどうやってするの ?私を手伝ってくれますか ?

4

1 に答える 1

0

バージョン r.53 より前のバージョンを使用している場合は、2 番目のシェーダー用にユニフォームを複製する必要があります。

shaderB = shaderA.clone();
shaderB.uniforms = THREE.UniformsUtils.clone( shaderA.uniforms );

より良い選択は、現在のバージョン r.53 に更新することです。その場合、ユニフォームのクローン作成は自動的に行われ、次の手順で十分です。

shaderB = shaderA.clone();
于 2012-11-16T14:27:34.003 に答える