- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Blender,使用 io_third 导出整个场景,其中包括一个环面、一个球体、Suzanne(钱头)、一个相机和一个光点(灯)。我得到的 JSON 文件包含这些元素作为子元素:
"object":{
"type":"Scene",
"matrix":[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],
"uuid":"3FF28BA1-D2C4-4191-B85E-6CF740855E1C",
"children":[{
"name":"Camera",
"uuid":"B7190F03-3E64-4CE9-80C4-4C4830CDE149",
"matrix":[-0.685881,-0.0108168,0.727634,0,0.31737,0.895343,0.312469,0,-0.654862,0.445245,-0.610666,0,-8.96977,10.5794,-7.42916,1],
"visible":true,
"type":"PerspectiveCamera",
"far":100,
"near":0.1,
"aspect":1.77778,
"fov":28.8415
},{
"name":"Sphere",
"uuid":"0BD547AA-5356-467A-B9B9-F14F1E6B14F3",
"matrix":[-1,0,0,0,0,0,1,0,0,1,0,0,2.73509,4.09248,-1.14813,1],
"visible":true,
"type":"Mesh",
"material":"F6D51381-509B-460A-9468-D7FB4011BAEF",
"castShadow":true,
"receiveShadow":true,
"geometry":"7953F05E-3773-435D-9C37-1F2F004F2328"
},{
"name":"Suzanne",
"uuid":"B195305E-3E34-484F-BC36-9F7E2F25C8C3",
"matrix":[-1,0,0,0,0,0,1,0,0,1,0,0,-0.0103972,6.33829,0.0395848,1],
"visible":true,
"type":"Mesh",
"material":"9B00D2EB-ABD8-44CB-9CB9-C9CD431BE867",
"castShadow":true,
"receiveShadow":true,
"geometry":"2264D3C6-FBE8-4ED2-927A-DC8B9261DCEE"
},{
"name":"Lamp",
"uuid":"68A14BA0-1A6D-41B2-9DE3-D96F954A6939",
"matrix":[0.290865,-0.0551891,0.955171,0,0.771101,0.604525,-0.199883,0,-0.566393,0.794672,0.218391,0,-4.07625,5.90386,1.00545,1],
"visible":true,
"type":"PointLight",
"color":16777215,
"intensity":1,
"distance":0,
"decayExponent":2
},{
"name":"Torus",
"uuid":"B4469FFE-114C-4FA8-91F3-A14E4186C74A",
"matrix":[-1,0,0,0,0,0,1,0,0,1,0,0,0.0785838,1.71657,3.25101,1],
"visible":true,
"type":"Mesh",
"material":"4C8B09D5-5C78-431A-815E-B5D94C4B9CFF",
"castShadow":true,
"receiveShadow":true,
"geometry":"9BC4AAA5-E636-42F8-80AF-AD2AC955A727"
}]
}
我现在使用对象加载器导入场景,一次性获取所有内容,而不是单个对象:
var Sphere;
var Monkey;
var BlenderCam;
var loader = new THREE.ObjectLoader();
// load a resource
loader.load(
// resource URL
'models/suzane/scene.json',
// Function when resource is loaded
function ( loadedScene ) {
scene.add( loadedScene );
//Getting the objects. This works fine and I can handle them:
Sphere = loadedScene.getObjectByName( "Sphere", true );
Monkey = loadedScene.getObjectByName( "Suzanne", true );
//Trying to get the camera object. The camera doesn's seem to be found
BlenderCam = loadedScene.children[ 0 ];
loop();
}
);
我可以成功处理任何网格:Torus、Suzanne 和 Sphere。但是,我找不到处理相机或灯的方法。
我什至尝试寻找使用此属性的每个 child :
BlenderCam = loadedScene.children[ 0 ];
我尝试了从 0 到 4 的数字(有 5 个子项),但 Three.js 只能识别其中的三个。它忽略了相机和灯。我什至改变了 JSON 文件中 Lamp 对象的位置,看看是否会产生影响,但它仍然只有children[0]、children[1]和children[2],其中children[0]不是相机,而是球体。因此,相机被“忽略”。
所以,问题是:
基本上,我想在 Blender 上解决所有问题,然后将整个场景导入 Three.js - 对象、相机和灯光。您能给我的任何帮助将不胜感激。预先感谢您的宝贵时间!
最佳答案
这对我来说效果很好。尝试使用 console.log(BlenderCam)
,您可以看到相机显示为 JSON 对象(使用 Firefox 的内置开发人员工具)。
不过,我确实使用了自己的 JSON,从 blender 导出:
{
"textures":[],
"images":[],
"metadata":{
"type":"Object",
"sourceFile":"scene.blend",
"version":4.4,
"generator":"io_three"
},
"materials":[],
"object":{
"type":"Scene",
"matrix":[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],
"uuid":"E0F9A974-447E-4CEA-B027-B6456FBBC425",
"children":[{
"name":"Camera",
"uuid":"BC347E50-122A-46CD-940F-16E2B12CFDFE",
"matrix":[1,3.25841e-07,1.00656e-07,0,-3.3837e-07,0.984808,0.173648,0,-4.25448e-08,-0.173648,0.984808,0,-4.37114e-06,-6.61029,49.9782,1],
"visible":true,
"type":"OrthographicCamera",
"far":5000,
"near":1,
"left":-43.9843,
"right":43.9843,
"top":25.8771,
"bottom":-25.8771
},{
"name":"Plane",
"uuid":"C0EB7E6E-9C9E-4AD1-917F-6FF31A1B956E",
"matrix":[-1,0,0,0,0,0,1,0,0,1,0,0,0,4.48201,-5.35856,1],
"visible":true,
"type":"Mesh",
"castShadow":true,
"receiveShadow":true,
"geometry":"88218586-75A2-43BA-96E7-F6C70558CD1C"
},{
"name":"Plane.001",
"uuid":"F5255EE0-8CAA-45C9-9DFA-395B8AFDE8C7",
"matrix":[-0.1541,0.0340519,0.683852,0,0.667744,-0.147553,0.157817,0,0.151432,0.685295,1.05509e-08,0,-14.3255,-6.97558,-0.000347044,1],
"visible":true,
"type":"Mesh",
"castShadow":true,
"receiveShadow":true,
"geometry":"C1549503-40B8-495F-874B-9C58CFEA65BB"
}]
},
"geometries":[{
"type":"Geometry",
"data":{
关于javascript - Three.js:加载JSON相机和灯光,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42017164/
在 Three.js 中,灯光是非常重要的元素之一,它能够模拟现实世界中的光照效果,帮助我们打造更加真实的三维场景。灯光的种类和配置方式可以影响整个场景的视觉效果,在不同的应用中,灯光的使用非常关键。
本文实例讲解了通知notification使用方法,此知识点就是用作通知的显示,包括振动、灯光、声音等效果,分享给大家供大家参考,具体内容如下 效果图: mainactivity:
VC++ 2010、OpenGL、GLSL、SDL 我正在转向着色器,遇到了最初在使用 ogl 管道时出现的问题。也就是说,光的位置似乎指向我的相机面向的任何方向。在 ogl 管道中,它只是镜面高光,
我在收到通知时听不到声音、振动或灯光。有人可以告诉我我缺少什么吗? 还有一些问题: 1.) 我只在应用程序打开时得到指定的图标。当应用程序关闭时,我会看到 android Logo 图标(我想那是因为
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我对three.js 示例有一个小问题fresnel shader . 'lights : true' - 如果这是 'true' 那么我会收到以下错误: Uncaught TypeError: Ca
几个简单的问题。我有一个正在尝试控制的 DMX king USB 照明 Controller 。 它基于 Open DMX 协议(protocol)(来自 Entec),提供了一个 c# 类。我已将设
我是一名优秀的程序员,十分优秀!