三、网状材料不起作用 - 给黑色
THREE.meshphongmaterial Not Working - Giving Black Color
我正在尝试使用本教程中的THREE.meshphongmaterial
:http://solutiondesign.com/webgl-and-three-js-texture-mapping/
但它不起作用并给出黑色。这是它的jsfiddle:http://jsfiddle.net/8hrk7mu6/12/
问题出在第 32 行:
var material = new THREE.MeshPhongMaterial( { ambient: 0x050505, color: 0x0033ff, specular: 0x555555, shininess: 30 } );
为什么它不起作用?如果我使用 THREE.MeshNormalMaterial
,那么它可以工作。
var material = new THREE.MeshNormalMaterial();
稍后,我想在代码中使用图像中的纹理。那也行不通。只有THREE.MeshNormalMaterial
在起作用。为什么?
事实证明有必要添加光。没有光,meshphongmaterial
会变成黑色。
所以我不得不添加这样的东西:
var light = new THREE.DirectionalLight( 0xffffff );
light.position.set( 0, 1, 1 ).normalize();
scene.add(light);
从这个链接得到它:https://github.com/mrdoob/three.js/issues/2766
为场景中的所有内容添加一些环境光是最简单的解决方案:
scene.add(new THREE.AmbientLight(0x404040))
您将需要添加一些环境光或点光,因为,MeshPhongMaterial对光有反应,因此只有在有光的情况下才可见,为了获得最佳效果/可见性,请使用以下代码:
const ambientLight = new THREE.AmbientLight(0xffffff, 0.5);
const pointLight = new THREE.PointLight(0xffffff, 0.5);
pointLight.position.x = 2;
pointLight.position.y = 3;
pointLight.position.z = 4;
scene.add(ambientLight, pointLight);
设置自发光值是由 Terg 的 Three.js Learning QuickStart 推荐的。灯光越少,渲染速度越快。
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 监视函数从服务返回不起作用,但作用域函数起作用
- 幻灯片滚动javascript不起作用
- 简单的javascript在Shopify中不起作用
- Recaptcha在IE7和IE8中不起作用
- Ember Data DS.Model's set函数不起作用
- JsFiddle上的鼠标事件不起作用
- 我的AngularJS表达式没有'不起作用
- 点击按钮输入不起作用
- 面向对象的Javascript代码在IE7中不起作用
- 分部隐藏在jquery中不起作用
- 在phonegap应用程序内部重定向不起作用
- Array.length似乎不起作用;console.log则显示其他情况
- $ionicplatform内的$scope不;不起作用
- 我的javascript for循环不起作用
- Meteor-添加用户自定义字段的方法不起作用
- HTML 5视频在iPad上不起作用,iPad布局的侧面有黑色部分
- 三、网状材料不起作用 - 给黑色
- 黑色掩码:用javascript应用的css转换不起作用
- iPhone 6s上的一个three.js视频示例不起作用(只有黑色面板)