首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自定义gltf模型上的海洋着色器

自定义gltf模型上的海洋着色器
EN

Stack Overflow用户
提问于 2021-10-04 20:21:24
回答 1查看 90关注 0票数 1

我有一个3D模型,我想对它应用海洋着色器。我想结合"shaders / ocean“和"loader / gltf”示例场景。我想在我的自定义3D模型上看到海洋着色器,我很抱歉,因为我的知识很少。

代码语言:javascript
运行
复制
            const waterMat = new THREE.MeshStandardMaterial({color: 0xff0000});

                const loader = new GLTFLoader().setPath( 'models/gltf/DamagedHelmet/glTF/' );
                loader.load( 'DamagedHelmet.gltf', function ( gltf ) {

                    gltf.scene.traverse( function ( child ) {

                        if ( child.isMesh ) {

                        waterGeo = child;

                        }

                    } );

                    water = new Water(
                        waterGeo,
                        {
                            textureWidth: 512,
                            textureHeight: 512,
                            waterNormals: new THREE.TextureLoader().load( 'textures/waternormals.jpg', function ( texture ) {

                                texture.wrapS = texture.wrapT = THREE.RepeatWrapping;

                            } ),
                            sunDirection: new THREE.Vector3(),
                            sunColor: 0xffffff,
                            waterColor: 0x001e0f,
                            distortionScale: 3.7,
                            fog: scene.fog !== undefined
                        }
                    );  

                    water.rotation.x = - Math.PI / 2;

                    scene.add( water );
EN

回答 1

Stack Overflow用户

发布于 2021-10-24 22:15:40

您必须将water = new Water(waterGeo,{您拥有的一些代码})更改为new Water(waterGeo.geometry,{您拥有的一些代码})

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69441998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档