<head>
<title> SceneJS Test</title>
<script type="text/javascript" src="resources/scenejs.js"></script>
</head>我想使用SceneJS在画布场景上随机分布立方体。由于这个库有主要的学习曲线,我自己检查了几个例子,并开始编写代码。我做了一些代码,无法说服自己错误在哪里:
<body onload = "main()" bgcolor="white">
<canvas id="theCanvas" width="720" height="405">
</canvas>
<script type="text/javascript">
main = function({
N = 10;
var canvas = document.getElementById("theCanvas");
var sceneName = "theScene";
SceneJS.createScene({
id: sceneName,
canvasId: canvas,
nodes: [{
type:"library",
id:"mylib",
nodes:[]
},
// Viewing transform specifies eye position, looking at the origin by default
{
id:"lookat",
type: "lookAt",
eye : { x: 0.0, y: 1.0, z: 80.0 },
up : { z: 1.0 },
look:{x:0,y:0,z:0},
nodes: [
/* Camera describes the projection*/
{
type: "camera",
optics: {
type: "perspective",
fovy : 45.0,
aspect : 720/405,
near : 0.10,
far : 10000.0
},
nodes: [
{
type: "rotate",
id: "pitch",
angle: 0.0,
x : 1.0,
nodes: [
{
type: "rotate",
id: "yaw",
angle: 0.0,
y : 1.0,
}
]
}
]
}
]
}
]
});
var scale = 100;
var scene = SceneJS.scene(sceneName);
for(var i=0; i<N; i++)
{
scene.add("node",{
type:"translate",
x:(Math.random()-0.5)* scale,
y:(Math.random()-0.5)* scale,
z:(Math.random()-0.5)* scale,
nodes:[{
type: "cube",
id: "cube"+i
}]
});
}
});
</script>
</body>我请求有人帮我找出错误所在,我将非常感谢你。我在浏览器上只能看到空白的白屏:(
发布于 2012-11-13 10:23:40
将节点添加到最内侧的旋转节点-这样它们将继承由lookat、camera和rotate节点设置的视图、投影和建模变换。
因此,为旋转节点指定一个ID,如"myYawRotate",然后从场景中获取对该节点引用:
var myRotate = scene.getNode("myYawRotate");并将多维数据集分支添加到该节点:
myYawRotate.add("node", { ...这是一个场景图的概念,叫做“状态继承”。它符合API的数据驱动方法,有助于场景图的简洁性和可插入性,但也提高了性能,因为转换矩阵将为每帧上的所有立方体设置一次(“状态排序”的一个方面)。
您还需要在更高的变换中插入灯光,外加材质节点。然后,您就拥有了SceneJS以一种您可以看到的方式呈现立方体所需的所有状态。
在您的示例中,可能发生的情况是,您确实有立方体渲染,但没有照明,并且没有转换到视图空间和投影。
https://stackoverflow.com/questions/13352213
复制相似问题