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

o3d 创建一个平面

 
阅读更多

var vertexInfo = o3djs.primitives.createVertexInfo(); //创建顶点对象

//设置面的宽和Z轴深度,此平面垂直Y轴平行XOZ坐标
var width;
var depth;
//创建面分成subdivisionsDepth*subdivisionsWidth个正方形
var subdivisionsDepth;
var subdivisionsWidth;


//创建顶点位置数据流对象
var positionStream = vertexInfo.addStream(3,o3djs.base.o3d.Stream.POSITION);
//创建顶点法线数据流对象
varnormalStream=vertexInfo.addStream(3,o3djs.base.o3d.Stream.NORMAL);
//创建顶点纹理数据流对象
vartexCoordStream=vertexInfo.addStream(2,o3djs.base.o3d.Stream.TEXCOORD,0);
//设置顶点的位置坐标、法线、纹理数据加入到数据流对象
for (var z = 0; z <= subdivisionsDepth; z++) {
for (var x = 0; x <= subdivisionsWidth; x++) {
var u = x / subdivisionsWidth;
var v = z / subdivisionsDepth;
positionStream.addElement(width * u - width * 0.5,0,depth*v-depth*0.5);
      normalStream.addElement(0, 1, 0);
      texCoordStream.addElement(u, 1 - v);
}
}                   

var numVertsAcross = subdivisionsWidth + 1;
for (var z = 0; z < subdivisionsDepth; z++) {
for (var x = 0; x < subdivisionsWidth; x++) {
// 四边形的第一个三角面
vertexInfo.addTriangle(
(z + 0) * numVertsAcross + x,
(z + 1) * numVertsAcross + x,
(z + 0) * numVertsAcross + x + 1);
// 四边形的第二个三角面
vertexInfo.addTriangle(
(z + 1) * numVertsAcross + x,
(z + 1) * numVertsAcross + x + 1,
(z + 0) * numVertsAcross + x + 1);
}
}

// 使用顶点数据对象创建几何形状
vertexInfo.createShape(pack, material);

                           
     
   //----------------------------------------------------------------   
此处创建的平面没有颜色信息如果没有纹理,将无法看到

如果要给平面着色。需要创建颜色数据流对象,并赋值

var colorStream = vertexInfo.addStream(4, o3djs.base.o3d.Stream.COLOR);
for (var z = 0; z <= subdivisionsDepth; z++) {
var alpha = z / subdivisionsDepth;
for (var x = 0; x <= subdivisionsWidth; x++) {
colorStream.addElement(1, 0, 0, alpha); //每个顶点颜色为红色
}
}
分享到:
评论

相关推荐

    O3D 物体 编辑器

    "O3D 物体编辑器"是基于O3D库开发的一个工具,用于帮助用户在网页环境中设计、编辑和操作3D物体。这个编辑器实现了在Firefox浏览器中的拖动和旋转功能,为3D交互提供了便利。 1. **O3D库**:O3D是由Google开发的...

    O3D学习笔记[一]素材准备*.3ds转成*.o3dtgz

    O3D使用O3DTGZ作为其内部资源包格式,它是一个经过压缩的文件,包含了模型、纹理、脚本和其他资源,可以作为一个整体在程序中加载,减少了内存占用和加载时间。 转换3DS到O3DTGZ的过程通常涉及以下步骤: 1. **...

    O3D 实例 研究中

    O3D 是一个开源的 JavaScript 库,它允许开发者在 Web 浏览器中创建高性能的三维图形应用。这个实例可能是为了展示 O3D 的基本用法和功能,帮助用户快速入门。下面我们将深入探讨 O3D 的核心概念、主要特性以及 `...

    google o3d例子3

    o3d是Google开发的基于web的3d编程API,因文件太大分三次上传

    谷歌O3D的javascript源码

    场景图是一种层次结构,其中每个节点代表一个3D对象或一组对象。通过操作场景图,开发者可以控制3D空间中的对象布局和交互。 6. **纹理和光照**:为了使3D模型看起来更真实,O3D支持纹理贴图和光照模型。理解如何...

    google o3d 编程例子1

    google开发的web3d编程APT o3d.提供的各种3d效果例子,因文件太大,分三个包传上

    O3D文档说明(主要关键字的说明及翻译)

    5. **Pack 包**:在O3D中,包是一个管理数据的对象,它存储对其他数据的引用,如纹理、状态、缓冲区、形状和变换。包的主要作用是控制这些数据的生命周期,例如,当一个包被销毁时,与其关联的所有资源也会被释放。 ...

    o3d lib1 graph javascript ajax

    o3d lib1 graph javascript ajax

    3D-o3d.zip

    在3D-o3d.zip这个压缩包中,我们看到的是Objective-3D视频游戏引擎的相关资料,这是一个专门用于3D游戏开发的工具。 Objective-3D游戏引擎,以其强大的功能和灵活性,为开发者提供了构建逼真3D游戏环境的可能性。它...

    o3d goolge javascript

    o3d goolge javascript texture graph

    google o3d 编程例子2

    o3d是Google开发的基于web的3d编程API,因文件太大分三次上传

    o3dv_0.8.3.zip

    "o3dv_0.8.3.zip" 是一个压缩包文件,包含了 Online3DViewer 的 0.8.3 版本。Online3DViewer 是一个基于 Web 的三维模型查看器,它允许用户在浏览器中查看和交互三维模型,无需安装任何额外的软件。这个工具主要利用...

    野村综研O3W架构资料(内部)

    - **O3W的目标**:O3W旨在提供一个更加灵活、可扩展且易于管理的核心系统架构。通过采用分布式对象技术,O3W能够更好地支持跨平台和跨网络环境下的系统集成。 - **O3W的特点**: - **统一的数据访问**:通过标准的...

    o3de实现Texture Distortion

    1. **创建Shader资源**:在O3DE中创建一个新的Shader资源,并定义输入和输出属性,包括纹理坐标和时间等。 2. **编写AzSL代码**:使用AzSL来编写计算扭曲UV坐标的代码。这可能涉及到对输入UV坐标和时间的运算,以及...

    phpws_0e9o3w_WWWKjO0O3cOm_phpws_

    【标题】"phpws_0e9o3w_WWWKjO0O3cOm_phpws_" 提供的信息表明,这可能是一个基于PHP的Web服务或者是一个与PHP相关的项目,其中包含了特定的标识符"0e9o3w"和"WWWKjO0O3cOm"。这些标识符可能是开发者自定义的命名规则...

    机器视觉大作业,使用open3d库来进行点云配准,过程为平面滤除、全局配准和局部优化,姿态估计+源代码+文档说明

    机器视觉大作业,使用open3d库来进行点云配准,过程为平面滤除、全局配准和局部优化,姿态估计+源代码+文档说明 - 小白不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的课程设计,代码都测试ok,都...

    CaO-Al2O3和CaO-SiO2-Al2O3渣系中组元活度的计算 (2013年)

    根据分子和离子共存理论,建立了CaO-Al2O3 和CaO-SiO2-Al2O3 渣系的活度计算模型,并利用模型对渣中各组元的活度进行了计算,分析了 w (CaO )对渣中组元活度的影响.结果表明,在 CaO-Al2O3 渣系中,当w(CaO)小于45%时,...

Global site tag (gtag.js) - Google Analytics