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库开发的一个工具,用于帮助用户在网页环境中设计、编辑和操作3D物体。这个编辑器实现了在Firefox浏览器中的拖动和旋转功能,为3D交互提供了便利。 1. **O3D库**:O3D是由Google开发的...
O3D使用O3DTGZ作为其内部资源包格式,它是一个经过压缩的文件,包含了模型、纹理、脚本和其他资源,可以作为一个整体在程序中加载,减少了内存占用和加载时间。 转换3DS到O3DTGZ的过程通常涉及以下步骤: 1. **...
O3D 是一个开源的 JavaScript 库,它允许开发者在 Web 浏览器中创建高性能的三维图形应用。这个实例可能是为了展示 O3D 的基本用法和功能,帮助用户快速入门。下面我们将深入探讨 O3D 的核心概念、主要特性以及 `...
o3d是Google开发的基于web的3d编程API,因文件太大分三次上传
场景图是一种层次结构,其中每个节点代表一个3D对象或一组对象。通过操作场景图,开发者可以控制3D空间中的对象布局和交互。 6. **纹理和光照**:为了使3D模型看起来更真实,O3D支持纹理贴图和光照模型。理解如何...
google开发的web3d编程APT o3d.提供的各种3d效果例子,因文件太大,分三个包传上
5. **Pack 包**:在O3D中,包是一个管理数据的对象,它存储对其他数据的引用,如纹理、状态、缓冲区、形状和变换。包的主要作用是控制这些数据的生命周期,例如,当一个包被销毁时,与其关联的所有资源也会被释放。 ...
o3d lib1 graph javascript ajax
在3D-o3d.zip这个压缩包中,我们看到的是Objective-3D视频游戏引擎的相关资料,这是一个专门用于3D游戏开发的工具。 Objective-3D游戏引擎,以其强大的功能和灵活性,为开发者提供了构建逼真3D游戏环境的可能性。它...
o3d goolge javascript texture graph
o3d是Google开发的基于web的3d编程API,因文件太大分三次上传
"o3dv_0.8.3.zip" 是一个压缩包文件,包含了 Online3DViewer 的 0.8.3 版本。Online3DViewer 是一个基于 Web 的三维模型查看器,它允许用户在浏览器中查看和交互三维模型,无需安装任何额外的软件。这个工具主要利用...
- **O3W的目标**:O3W旨在提供一个更加灵活、可扩展且易于管理的核心系统架构。通过采用分布式对象技术,O3W能够更好地支持跨平台和跨网络环境下的系统集成。 - **O3W的特点**: - **统一的数据访问**:通过标准的...
1. **创建Shader资源**:在O3DE中创建一个新的Shader资源,并定义输入和输出属性,包括纹理坐标和时间等。 2. **编写AzSL代码**:使用AzSL来编写计算扭曲UV坐标的代码。这可能涉及到对输入UV坐标和时间的运算,以及...
【标题】"phpws_0e9o3w_WWWKjO0O3cOm_phpws_" 提供的信息表明,这可能是一个基于PHP的Web服务或者是一个与PHP相关的项目,其中包含了特定的标识符"0e9o3w"和"WWWKjO0O3cOm"。这些标识符可能是开发者自定义的命名规则...
机器视觉大作业,使用open3d库来进行点云配准,过程为平面滤除、全局配准和局部优化,姿态估计+源代码+文档说明 - 小白不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的课程设计,代码都测试ok,都...
根据分子和离子共存理论,建立了CaO-Al2O3 和CaO-SiO2-Al2O3 渣系的活度计算模型,并利用模型对渣中各组元的活度进行了计算,分析了 w (CaO )对渣中组元活度的影响.结果表明,在 CaO-Al2O3 渣系中,当w(CaO)小于45%时,...