使用O3D javascript API构建一个O3D应用
2009-09-01 15:44
961 查看
在HTML中导入所需要的js包。
一个复杂的3D应用包含场景、摄像机、3D几何体、灯管和材质等。
<html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>O3D Example</title> <mce:script type="text/javascript" src="o3djs/base.js" mce_src="o3djs/base.js"></mce:script> <mce:script type="text/javascript"><!-- //o3d js // --></mce:script> </head> <body> <h1>O3D Example</h1> <!-- Start of O3D plugin --> <div id="o3d" style="width: 600px; height: 600px;"></div> <!-- End of O3D plugin --> </body> </html>
一个复杂的3D应用包含场景、摄像机、3D几何体、灯管和材质等。
o3djs.require('o3djs.util'); o3djs.require('o3djs.rendergraph'); o3djs.require('o3djs.primitives'); o3djs.require('o3djs.camera'); o3djs.require('o3djs.material'); //O3D程序的入口点 var g_client; //3D视窗 var g_viewInfo; //旋转角度 var g_animate_angle=0; window.onload = function(){ o3djs.util.makeClients(initialize); } function initialize(clientElements) { var o3d = clientElements[0]; //初始化程序入口client g_client = o3d.client; // 创建场景容器 var pack = g_client.createPack(); // 创建视窗 g_viewInfo = o3djs.rendergraph.createBasicView( pack,g_client.root,g_client.renderGraphRoot); // 创建材质 var material = o3djs.material.createBasicMaterial( pack,g_viewInfo, [1, 0, 0, 1]); // 创建一个正方体 var cube = o3djs.primitives.createCube(pack, material, 0.5); // 创建3D物体的容器 var transform = pack.createObject('Transform'); transform.parent = g_client.root; transform.addShape(cube); // 初始化Camera o3djs.camera.fitContextToScene(g_client.root, g_client.width, g_client.height, g_viewInfo.drawContext); //添加帧循环回调函数 g_client.setRenderCallback(onRender); } /** * 帧循环回调函数 */ function onRender(event){ //取得帧间隔时间 var elapsedTime = event.elapsedTime; g_animate_angle += 0.1 * elapsedTime; // camera的位置 var eye = [ Math.sin(g_animate_angle) * 1.0, 1.0, Math.cos(g_animate_angle) * 1.0]; // camera的指向 var target = [0, 0, 0]; //告诉camera哪个方向是向上,本例中是y轴指向。 var up = [0, 1, 0]; //更新camera的位置 g_viewInfo.drawContext.view = o3djs.math.matrix4.lookAt(eye, target, up); }
相关文章推荐
- Node.js高级编程:用JavaScript构建可伸缩应用(6)2.6 核心API基础-使用计时器制定函数的执行计划
- Node.js高级编程:用Javascript构建可伸缩应用(4)2.4 核心API基础-使用Buffer处理,编码,解码二进制数据
- 使用 UDDI V3 API 构建安全的 UDDI 应用(
- 理解使用 JavaScript 构建 Metro 应用
- javascript +.net 构建restful API 应用
- React Native:使用 JavaScript 构建原生应用 详细剖析
- 深入浅出 React Native:使用 JavaScript 构建原生应用
- 使用jQuery、Yahoo API和HTML5的geolocation来开发一个天气预报web应用
- 使用MVC4,Ninject,EF,Moq,构建一个真实的应用电子商务SportsStore(四)
- 使用工具或者IDE迅速构建一个Spring Boot应用
- 使用jQuery、Yahoo API和HTML5的geolocation来开发一个天气预报web应用
- javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
- 使用MVC4,Ninject,EF,Moq,构建一个真实的应用电子商务SportsStore(六)
- 使用MVC4,Ninject,EF,Moq,构建一个真实的应用电子商务SportsStore(二)
- GraphQL 用例:使用 Golang 和 PostgreSQL 构建一个博客引擎 API
- 使用API获取一个应用是否运行结束的例子
- 使用 UDDI V3 API 构建安全的 UDDI 应用
- 使用MVC4,Ninject,EF,Moq,构建一个真实的应用电子商务SportsStore(十)
- 使用MVC4,Ninject,EF,Moq,构建一个真实的应用电子商务SportsStore(八)
- 如何使用国际开源项目构建一个完整的GIS(地理信息)应用系统