[原][osg]Geometry详解
//geometry成员变量
PrimitiveSetList _primitives;
osg::ref_ptr<Array> _vertexArray; //顶点
osg::ref_ptr<Array> _normalArray; //法线
osg::ref_ptr<Array> _colorArray; //
osg::ref_ptr<Array> _secondaryColorArray; //
osg::ref_ptr<Array> _fogCoordArray; //
ArrayList _texCoordList; //纹理UV
ArrayList _vertexAttribList; // bool _containsDeprecatedData; //
osgt文件中保存的格式:
osg::Geometry {
UniqueID 2
DataVariance STATIC
StateSet TRUE {
osg::StateSet {
UniqueID 3
DataVariance STATIC
AttributeList 1 {
osg::Material {
UniqueID 4
Ambient TRUE Front 1 1 1 1 Back 1 1 1 1
Diffuse TRUE Front 1 1 1 1 Back 1 1 1 1
Specular TRUE Front 0 0 0 1 Back 0 0 0 1
Emission TRUE Front 0 0 0 1 Back 0 0 0 1
Shininess TRUE Front 0 Back 0
}
Value OFF
}
TextureModeList 1 {
Data 1 {
GL_TEXTURE_2D ON
}
}
TextureAttributeList 1 {
Data 1 {
osg::Texture2D {
UniqueID 5
DataVariance STATIC
WRAP_S CLAMP
WRAP_T CLAMP
WRAP_R CLAMP
MIN_FILTER LINEAR
MAG_FILTER LINEAR
UnRefImageDataAfterApply TRUE
Swizzle RGBA
Image TRUE {
ClassName osg::Image
UniqueID 6
FileName "Tile_1_L23_000001001000_0.dds"
WriteHint 2 2
DataVariance STATIC
}
TextureWidth 1024
TextureHeight 1024
}
Value OFF
}
}
}
}
PrimitiveSetList 1 {
osg::DrawElementsUInt {
UniqueID 7
Mode TRIANGLES
vector 30450 {
........
}
}
}
VertexArray TRUE {
osg::Vec3Array {
UniqueID 8
Binding BIND_PER_VERTEX
vector 6681 {
........
}
}
}
TexCoordArrayList 1 {
osg::Vec2Array {
UniqueID 9
Binding BIND_PER_VERTEX
vector 6681 {
........
}
}
}
}
大致分析一下:
一个geometry包含:
一个stateset
一个primitive列表
一个顶点数组
一个纹理数组列表
stateset包含:attribute数组,纹理数组
primitive包含:绘制的图元信息:(绘制格式,顶点索引)
顶点数组包含:三维顶点位置信息
纹理数组包含:二维顶点UV信息
[原][osg]Geometry详解的更多相关文章
- GLSL-几何着色器详解跟实例(GS:Geometry Shader)[转]
[OpenGL4.0]GLSL-几何着色器详解和实例(GS:Geometry Shader) 一.什么是几何着色器(GS:Geometry Shader) Input Assembler(IA)从顶点 ...
- 算法进阶面试题01——KMP算法详解、输出含两次原子串的最短串、判断T1是否包含T2子树、Manacher算法详解、使字符串成为最短回文串
1.KMP算法详解与应用 子序列:可以连续可以不连续. 子数组/串:要连续 暴力方法:逐个位置比对. KMP:让前面的,指导后面. 概念建设: d的最长前缀与最长后缀的匹配长度为3.(前缀不能到最后一 ...
- Unity3D NGUI UIPlayTween(原UIButtonTween)动画事件详解
http://blog.csdn.net/asd237241291/article/details/8507817 原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 Unity3D引擎技术 ...
- (转)详解LVS负载均衡之三种工作模型原理和10种调度算法
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://linuxnx.blog.51cto.com/6676498/1195379 LV ...
- 安卓程序代写 网上程序代写[原]BluetoothSocket详解
一. BluetoothSocket简介 1. 简介 客户端与服务端 : BluetoothSocket 和 BluetoothServerSocket 类似于Java中的套接字的 Socket 和 ...
- 安卓程序代写 网上程序代写[原]BluetoothDevice详解
一. BluetoothDevice简介 1. 继承关系 public static Class BluetoothDevice extends Object implement Parcelable ...
- 【原】AMFObject数据格式详解
AMF AMF是Action Message Format(动作消息格式)的简写,它是一种二进制的数据格式.它的设计是为了把actionscript里面的数据(包括Object, Array, Boo ...
- NAND_FLASH_内存详解与读写寻址方式
一.内存详解 NAND闪存阵列分为一系列128kB的区块(block),这些区块是 NAND器件中最小的可擦除实体.擦除一个区块就是把所有的位(bit)设置为"1"(而所有字节(b ...
- CATIA 基础详解 第01章 CATIA初认识
1.1 CATIA V5产品介绍 CATIA V5是基于美国IBM公司与法国达索系统公司(Dassault Systèmes)软件解决方案推出的新一代产品,它致力于满足以设计流程为中心的设计需求.它提 ...
随机推荐
- c#md5加密的简单用法
using System.Security.Cryptography; //MD5 md5 = MD5.Create(); MD5 md5 = new MD5CryptoServiceProvider ...
- Linux sed 命令字符串替换使用方法详解
1. sed替换的基本语法 sed 's/原字符串/替换字符串/' 单引号里面,s表示替换,三根斜线中间是替换的样式,特殊字符需要使用反斜线”\”进行转义.2. 单引号” ‘ ’”是没有办法用反斜线” ...
- Golang框架Beego在Windows环境下小试牛刀
Beego官网beego官网 : https://beego.me/github : https://github.com/beego Beego安装前提: ①Go 1.1+ 以确保所有功能的正常使用 ...
- v-model指令实现简单的问卷表格
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&q ...
- Linux下Keepalived安装与配置
一.简介 负载平衡是一种在真实服务器集群中分配IP流量的方法,可提供一个或多个高度可用的虚拟服务.在设计负载均衡拓扑时,重要的是要考虑负载均衡器本身的可用性以及它背后的真实服务器.用C编写的类似于la ...
- cscope for golang
从 https://gist.github.com/bopjiang/11146574 下载, 做了修改. cscope-go.sh #!/bin/bash # generate cscope ind ...
- java基础篇之理解synchronized的用法
Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 一.当两个并发线程访问同一个对象object中的这个synchronized(this ...
- [error] 2230#2230: *84 client intended to send too large body: 1711341 bytes
centos7 lnmp部署知乎上传主体报错 2019/01/17 18:55:27 [error] 2230#2230: *89 open() "/code/wordpress/favic ...
- Qt+数据库发布后无法打开数据库
在main.cpp中: QApplication a(argc, argv); QString strLibPath(QDir::toNativeSeparators(QApplication::ap ...
- Python3基础 response.read 输出网页的源代码
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...