- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当前尝试在 three.js 上将图像环绕立方体并出现以下错误“THREE.MeshFaceMaterial 已被删除。请改用数组。',从以前的搜索来看,我尝试使用的方法可能不再可用,是否有任何人知道的新方法?我将在下面附上代码。任何帮助将不胜感激。提前致谢,迈克。
<script src="js/three.js"></script>
<script src="js/OrbitControls.js"></script>
<script src="js/ParallaxBarrierEffect.js"></script>
<script>
(function(){var script=document.createElement('script');script.onload=function(){var stats=new Stats();document.body.appendChild(stats.dom);requestAnimationFrame(function loop(){stats.update();requestAnimationFrame(loop)});};script.src='//rawgit.com/mrdoob/stats.js/master/build/stats.min.js';document.head.appendChild(script);})()
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
window.addEventListener('resize', function ()
{
var width = window.innerWidth;
var height = window.innerHeight;
renderer.setSize(width, height);
camera.aspect = width / height;
camera.updateProjectionMatrix();
});
//var effect = new THREE.ParallaxBarrierEffect(renderer);
//effect.setSize(window.innerWidth, window.innerHeight);
controls = new THREE.OrbitControls(camera, renderer.domElement)
/* var loader = new THREE.ObjectLoader();
loader.load
(
'models/skull.json',
function(object)
{
scene.add(object);
}
);
*/
var geometry = new THREE.CubeGeometry(10000,10000,10000);
var cubeMaterials =
[
new THREE.MeshBasicMaterial({map: new THREE.TextureLoader().load('skybox/right.png'), side: THREE.DoubleSide}), // RIGHT SIDE
new THREE.MeshBasicMaterial({map: new THREE.TextureLoader().load('skybox/left.png'), side: THREE.DoubleSide}), // LEFT SIDE
new THREE.MeshBasicMaterial({map: new THREE.TextureLoader().load('skybox/top.png'), side: THREE.DoubleSide}), // TOP SIDE
new THREE.MeshBasicMaterial({map: new THREE.TextureLoader().load('skybox/bottom.png'), side: THREE.DoubleSide}), // BOTTOM SIDE
new THREE.MeshBasicMaterial({map: new THREE.TextureLoader().load('skybox/front.png'), side: THREE.DoubleSide}), // FRONT SIDE
new THREE.MeshBasicMaterial({map: new THREE.TextureLoader().load('skybox/back.png'), side: THREE.DoubleSide}) // BACK SIDE
];
var cubeMaterial = new THREE.MeshFaceMaterial(cubeMaterials);
var cube = new THREE.Mesh(geometry, cubeMaterial);
scene.add(cube);
camera.position.z = 3;
var ambientLight = new THREE.AmbientLight(0xFFFFFF, 0.3);
scene.add(ambientLight);
var light1 = new THREE.PointLight(0xFF0040, 4, 5);
//scene.add(light1);
var light2 = new THREE.PointLight(0x0040FF, 2, 5);
//scene.add(light2);
var light3 = new THREE.PointLight(0x80FF80, 4, 5);
//scene.add(light3);
var directionalLight = new THREE.DirectionalLight(0xFFFFFF, 1);
directionalLight.position.set(0,1,0);
//scene.add(directionalLight);
var spotLight = new THREE.SpotLight(0xFF45F6, 200);
spotLight.position.set(0,3,3);
//scene.add(spotLight);
var update = function()
{
//cube.rotation.x += 0.01;
//cube.rotation.z += 0.005;
var time = Date.now() * 0.0005;
light1.position.x = Math.sin(time + 0.7) * 30;
light1.position.x = Math.cos(time + 0.5) * 40;
light1.position.x = Math.cos(time + 0.3) * 30;
light2.position.x = Math.cos(time + 0.3) * 30;
light2.position.x = Math.sin(time + 0.5) * 40;
light2.position.x = Math.sin(time + 0.7) * 30;
light3.position.x = Math.sin(time + 0.7) * 30;
light3.position.x = Math.cos(time + 0.3) * 40;
light3.position.x = Math.sin(time + 0.5) * 30;
};
var render = function()
{
renderer.render(scene, camera);
};
var GameLoop = function()
{
requestAnimationFrame(GameLoop);
update();
render();
};
GameLoop();
</script>
最佳答案
如果您尝试创建天空盒,您可以将 THREE.MeshFaceMaterial(cubeMaterials) 更改为 THREE.MeshBasicMaterial(cubeMaterials)。但是请注意,你的透视相机一直渲染到 1000,而你的盒子有 10000 个单位,所以如果你想看到天空盒,你将不得不更改你的相机变量。
关于javascript - THREE.MeshFaceMaterial 已被删除。改用数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48226738/
三.js 我正在尝试创建一个每面都有不同颜色的二十面体。 var IcoGeom=new THREE.IcosahedronGeometry(1); var IcoCo
根据three.js github上的各种帖子,MeshFaceMaterial最终会被弃用。 我目前将它用于我的地形。当然,这不是最好的方法。其实它很蹩脚。对于一个我不能使用 BufferGeome
我们最近切换到 r68 并将所有几何图形移动到 THREE.BufferGeometry。 我们在很多地方使用了 THREE.MeshFaceMaterial,根据 BufferGeometry fa
当前尝试在 three.js 上将图像环绕立方体并出现以下错误“THREE.MeshFaceMaterial 已被删除。请改用数组。',从以前的搜索来看,我尝试使用的方法可能不再可用,是否有任何人知道
我现在尝试了几种不同的光源(Directional、Spot、Point),但它们都没有在 MeshFaceMaterial 对象上产生漂亮的阴影。相反,整个 MeshFaceMaterial 对象将
我正在尝试使用 THREE.js 框架在 WebGL 中 build 一座建筑。 我是 3D 图形新手,从未使用过任何其他工具(DX、OpenGL...) 我正在尝试使用以下代码在我的场景中创建一座建
我是 Three.js 的新学习者。 MeshFaceMaterial 有一些问题。所以任何人都可以在这种情况下帮助我。我将非常感谢他。 最佳答案 是的,MeshFaceMaterial 已弃用。您可
我的代码设置可以根据不同的条件更改某些对象的颜色。它当前使用诸如之类的循环 for (j = 0; j < objects[i].children.length; j++) { objects
由于我使用修订版 54 而不是修订版 48,我在脚本中得到了以下异常(exception): Uncaught TypeError: Cannot read property 'map' of und
我正在使用 ThreeJS r65 创建一个简单的多维数据集。立方体的相对面分配了相同的颜色: var scene = new THREE.Scene(); var camera = new THRE
我正在使用 ThreeJS r65 创建一个简单的多维数据集。立方体的相对面分配了相同的颜色: var scene = new THREE.Scene(); var camera = new THRE
我是一名优秀的程序员,十分优秀!