三、JS,给纹理添加镜面反射(shine) [英] Three JS, add specularity (shine) to texture

查看:33
本文介绍了三、JS,给纹理添加镜面反射(shine)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个纹理,我要应用到three.js 中的一个对象.我想给它添加一些镜面反射或光泽.

I have a texture I am applying to an object in three.js. I want to add some specularity or shininess to it.

我看到类似这样的例子

new THREE.MeshPhongMaterial( { 
    color: 0x996633, 
    specular: 0x050505,
    shininess: 100
} );

但是,我的代码是这样的:

However, my code looks like this:

// texture
var texture = new THREE.Texture();
var imgLoader = new THREE.ImageLoader( manager );
imgLoader.load( 'assets/uv.png', function ( image ) {
    texture.image = image;
    texture.needsUpdate = true;
} );

// model
var loader = new THREE.OBJLoader( manager );
loader.load( 'assets/obj.obj', function ( object ) {
    object.traverse( function ( child ) {
        if ( child instanceof THREE.Mesh ) {
            child.material.side = THREE.DoubleSide;
            child.material.map = texture;
        }
    } );
    object.position.y = - 95;
    scene.add( object );
}, onProgress, onError );

我不确定在哪里添加光泽度或镜面反射设置,因为我没有使用 THREE.MeshPhongMaterial,或者如果我确实使用了 THREE.MeshPhongMaterial,如何将它与 THREE.texture 结合起来.

I am not sure where to add the shininess or specular setting since I'm not using a THREE.MeshPhongMaterial, or if I did use the THREE.MeshPhongMaterial, how to combine it with THREE.texture.

推荐答案

我建议您在加载对象时覆盖它的材质.

I would suggest you override the object's material when it's loaded.

var loader = new THREE.OBJLoader(manager);
loader.load('assets/obj.obj', function (object) {
    object.traverse(function (child) {
        if (child instanceof THREE.Mesh) {
            child.material = new THREE.MeshPhongMaterial({
                color:     0x996633, 
                specular:  0x050505,
                shininess: 100,
                map:       texture,
                side:      THREE.DoubleSide
            });
        }
    } );
    object.position.y = - 95;
    scene.add(object);
}, onProgress, onError);

这篇关于三、JS,给纹理添加镜面反射(shine)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆