【学习笔记】3D图形核心基础精炼版-6:stage3D实战-顶点
来源:互联网 发布:java中怎么定义数组 编辑:程序博客网 时间:2024/05/17 23:22
顶点:
这里说的顶点实际上包括组成物体的所有点、贴图UV坐标信息、该点的法线信息、该点的颜色信息等。
var vbV:Vector.<Number> = Vector.<Number>([ // X Y Z U V R G B A-1, 1,0,0,0,0.1,0.1,0.1,1, // 左上角的点 1, 1,0,1,0,0.1,0.1,0.1,1, // 右上角的点 1,-1,0,1,1,0.1,0.1,0.1,1, // 右下角的点-1,-1,0,0,1,0.1,0.1,0.1,1 // 左下角的点]);
vb = context3D.createVertexBuffer(vbV.length/9,9); // 这里的9表示一个顶点含有的9个Number信息
vb.uploadFromVector(vbV,0,vbV.length/9); // 上传,不上传以后就无法使用这个vb(VertexBuffer3D)
上面的环节不用再每次渲染都上传一下,只要vb建立好了,以后每次渲染的时候直接用即可。而这个XYZUVRGBA这个具体用于干什么以及顺序什么也可以自己定,就像你存一个数据到数组中,你取的时候按照你存的顺序来读取使用一个道理,当然操作它的时候就是在shader语言里面进行操作了。可以先稍微渲染时画家context3D的处理:
context3D.clear(); // 清除绘制context3D.setVertexBufferAt(0,Actor.vb,0,Context3DVertexBufferFormat.FLOAT_3); // xyz 代码中可使用va0context3D.setVertexBufferAt(2,Actor.vb,5,Context3DVertexBufferFormat.FLOAT_4); // rgba 代码中可使用va2context3D.setProgram(program1); // 该次绘制使用program1代码来绘制 context3D.drawTriangles(ib,0); // 绘制,物体的索引ib
再看看AGAL里program1的代码:
// VERTEX着色语言"m44 op va0 vc0 \n" + // 输出顶点 = 该物体的原始顶点 * 该物体的最终矩阵"mov v1 va2\n"+ // 将顶点的颜色信息传输到中转站,方便FRAGMENT着色语言用// FRAGMENT着色语言"mov oc v1 \n" + // 输出颜色,每个顶点不是都有颜色么
当然到这里都不是完整的代码,都是片段,我们只是从片段中理解概念,后面才会有具体完整的代码。
0 0
- 【学习笔记】3D图形核心基础精炼版-6:stage3D实战-顶点
- 【学习笔记】3D图形核心基础精炼版-10:stage3D实战-AGAL基础和命令
- 【学习笔记】3D图形核心基础精炼版-4:stage3D实战-环境搭建
- 【学习笔记】3D图形核心基础精炼版-5:stage3D实战-矩阵计算
- 【学习笔记】3D图形核心基础精炼版-7:stage3D实战-范例工程1
- 【学习笔记】3D图形核心基础精炼版-8:stage3D实战-范例工程2
- 【学习笔记】3D图形核心基础精炼版-9:stage3D实战-图片纹理
- 【学习笔记】3D图形核心基础精炼版-11:stage3D实战-光照效果和范例工程3
- 【学习笔记】3D图形核心基础精炼版-12:stage3D实战-动态阴影 shadow mapping 和范例工程4
- 3D图形核心基础精炼版-13:stage3D实战-普通地形和范例工程5
- 【学习笔记】3D图形核心基础精炼版-2:流程概念版
- 【学习笔记】3D图形核心基础精炼版-3:屏幕中的三维坐标概念
- 【学习笔记】3D图形核心基础精炼版-1:入门概念
- 3D图形核心基础精炼版-14:透过数学计算和graphics绘制点和线来了解3D绘制原理
- 【学习笔记】3D图形学:stage3D实战-延迟着色技术DeferredShading
- stage3d编程-基础3(网格,法线,面,顶点等)
- Direct 3D学习笔记二:顶点的创建
- stage3d学习笔记(一)
- 一些sql的写法
- 时间问题,增加n秒n分n小时
- 加密类型
- [android]一个关于UDP和TCP的项目实践(二)
- vc资源 Windows资源 文件资源 自定义文件资源的读取
- 【学习笔记】3D图形核心基础精炼版-6:stage3D实战-顶点
- iOS __runtime
- 升级java1.8及ssh版本中碰到的问题(四)
- Java软件工程师 (职业简介)
- Activity全屏的方法
- Android存储之ShredPreferences
- opencv 第十章 《跟踪与运动》知识点整理、总结
- Java 基于MySQL数据库的简单学生管理系统
- js中setTimeOut()和setInterval()的使用--程序执行时间控制