`
wjlgryx
  • 浏览: 307068 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

o3d 初级demos

UP 
阅读更多
view plaincopy to clipboardprint?
<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); 
}
分享到:
评论

相关推荐

    Java 2.5D游戏Demos

    在这个"Java 2.5D游戏Demos"压缩包中,包含了一系列用Java编写的2.5D游戏示例,如俄罗斯方块和人物行走等。这些示例对于学习和理解Java游戏编程至关重要,因为它们提供了实际的代码和逻辑结构,可以帮助开发者掌握...

    Android6.0 Api Demos

    **Android 6.0 API Demos详解** Android 6.0 API Demos 是一个官方提供的示例代码集合,它展示了Android 6.0 (Marshmallow) SDK中的各种API功能和用法。这些示例旨在帮助开发者更好地理解和学习如何在实际应用中...

    frsp_demos.zip_FRSP_Demos.zip_demos_processing_richards_signal

    Signal processing demos from Richards

    最新Android apidemos

    《深入探索Android API Demos:最新实践与技术解析》 Android API Demos是Google官方提供的一款用于展示Android SDK中各种API功能和用法的应用程序,它涵盖了从基础控件到高级特性的全方位示例,是开发者学习...

    Android ApiDemos apk

    《Android ApiDemos apk:深入理解Android应用开发的实践指南》 Android ApiDemos apk是Android开发者们熟悉的一个示例程序,它包含了Android SDK中的各种API功能演示,为开发者提供了丰富的学习资源。这个应用程序...

    ApiDemos(6.0)

    ApiDemos 6.0

    8.1版本ApiDemos源码

    《Android 8.1版本ApiDemos源码详解:深入理解API使用实例》 在Android开发领域,理解和熟练运用各种API是提升技能的关键步骤。"8.1版本ApiDemos源码"为开发者提供了一个宝贵的资源,它包含了Android 8.1系统中各种...

    Android ApiDemos

    《Android ApiDemos详解——揭示Android开发的奥秘》 Android ApiDemos是Android开发者学习和探索平台功能的重要资源库,它集成了Android SDK中的各种控件、绘图技术以及四大组件(Activity、Service、...

    ApiDemos示例源码

    《ApiDemos示例源码解析》 ApiDemos是Android平台提供的一款示例应用,它包含了Android SDK中的各种API功能展示,对于开发者来说,这是一个非常宝贵的资源库,可以帮助我们深入理解和学习Android系统的API用法。...

    Demos.rar_3D射击游戏_d3d_d3d 游戏_shooting_游戏demo

    总的来说,"Demos.rar_3D射击游戏_d3d_d3d 游戏_shooting_游戏demo"为我们提供了一个学习和实践3D游戏开发的良好起点,通过深入研究和实践,开发者可以掌握D3D的核心技术和3D射击游戏的开发流程,进一步提升自己的...

    ant-design-demos

    "ant-design-demos" 是一个基于Ant Design框架的示例集合,主要展示了Ant Design的各种组件和功能在实际应用中的使用方式。Ant Design是一款由阿里集团开发的高质量React UI库,它提供了一系列美观、易用且具有企业...

    android demos

    "Android Demos"是一个集合了各种Android开发示例的应用程序,它包含了丰富的代码实例,旨在帮助开发者更好地理解和学习Android平台的各种功能和API的使用。这个压缩包中的"ApiDemos"很可能是一个官方或非官方的实现...

    jdk-8u211-windows-x64-demos

    文件名称: jdk-8u211-windows-x64-demos.zip 文件大小: 57.0 MB (59,804,583 字节) MD5: c759dd4d00b1ee2ed172e21d3a7b2d82 SHA1: 9dd4288b1486621efe4e7e261b0aac9f2a1decb5 SHA256: bef76dec23897b81f3fb5ed8b7c...

    android Support4Demos

    `Support4Demos`这个项目就是专门用来演示如何使用`support-v4`库中的功能,尤其是关于`Fragment`和`ViewPager`的使用。 首先,我们来详细了解一下`Fragment`。`Fragment`是Android 3.0(API级别11)引入的概念,...

    安卓ApiDemos

    《安卓ApiDemos详解——掌握Android API实践精髓》 安卓ApiDemos,作为一个开发者们耳熟能详的项目,它是Android SDK中一个重要的组成部分,它提供了丰富的API实例,旨在帮助开发者深入理解和掌握Android系统的各种...

    最新ApiDemos源码,直接下载导入即可使用

    ApiDemos是Android开发中的一个经典示例项目,它包含了Android SDK中各种API的示例代码,用于展示如何使用Android框架的各种功能。这个最新的ApiDemos源码版本为开发者提供了直观的学习材料,帮助他们理解并实践...

    android的ApiDemos

    API Demos 是 Google 为了 Android 开发者所提供的一个 Android API 合集,其中包含了很多的 API 范例,同时遵循了良好的代码规范,是一个值得开发者研究和学习的典型。android的ApiDemos,需要解压缩后使用。

    DevExpress Demos

    DevExpress是一款知名的软件开发工具提供商,其提供的DevExpress Demos是一系列展示其控件和框架功能的实例应用。在这款17.2版本的WinForm Demo中,开发者可以深入了解和学习DevExpress的Windows Forms平台上的组件...

    API-Demos(7.0源码)

    《API-Demos(7.0源码)深度解析》 API Demos是Android系统源码中的一部分,它是一个包含了各种Android API示例的项目,专为开发者设计,用于展示和学习Android系统的各种功能和API的使用。这个项目是基于Android ...

Global site tag (gtag.js) - Google Analytics