मैं Three.js में एक जाल पर एक बनावट सेट कर रहा हूं पर संरचना को बदल देता है और जब यह लोड करता है यह लग रहा है कि कैसे मैं यह भी चाहते हैं:Three.js सामग्री
texture = THREE.ImageUtils.loadTexture("textures/hash.png");
texture.needsUpdate = true;
uniforms = {
color: { type: "c", value: new THREE.Color(0xffffff) },
texture: { type: "t", value: texture },
},
vertexShader = "varying vec2 vUv; void main() {vUv = uv;gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);}",
fragmentShader = "uniform vec3 color; uniform sampler2D texture; varying vec2 vUv; void main() { vec4 tColor = texture2D(texture, vUv); gl_FragColor = vec4(mix(color, tColor.rgb, tColor.a), 1.0);}",
material = new THREE.ShaderMaterial({
uniforms : uniforms,
vertexShader : vertexShader,
fragmentShader : fragmentShader
});
लेकिन मैं बनावट में परिवर्तन करना चाहते कि बाद में इस जाल पर है मैं इस की कोशिश की है,:,
obj.mesh.material.uniforms.texture = THREE.ImageUtils.loadTexture("textures/1.png");
obj.mesh.material.uniforms.texture.needsUpdate = true;
लेकिन इस बनावट जाल पर प्रदर्शित किया जा रहा नहीं बदलता कि मैं एक THREE.ShaderMaterial पर एक बनावट को बदल सकते हैं?
इसे 'obj.mesh.material.uniforms.texture.value' को असाइन करने का प्रयास करें जैसा आपने पहले किया था। बनावट सफलतापूर्वक लोड होने के बाद 'जरूरत अद्यतन' ध्वज सेट करने पर विचार करें (लोड ईवेंट की सदस्यता लेना)। – Matthias
आप सही थे, मुझे इसे 'texture.value' को असाइन करने की आवश्यकता थी, धन्यवाद – 0xor1
अच्छा। मैंने एक जवाब जोड़ा ताकि आप इस सवाल को बंद कर सकें। – Matthias