细读cow.osg
细读cow.osg
转自:http://www.cnblogs.com/mumuliang/archive/2010/06/03/1873543.html
对,就是那只著名的奶牛。
//Group节点,可有子节点。
Group {
UniqueID Group_0 //Gourp名称
DataVariance STATIC //不知道用来干嘛,一般都是static
cullingActive TRUE //参与culling?
num_children 1 //子节点数
Geode { //子节点是Geode节点(Geode节点是叶节点,它不会再有子节点,可以与任意多个Drawable的对象关联)
DataVariance DYNAMIC
name "cow.osg" //Geode名称,应该是模型路径吧
cullingActive TRUE //参与culling
num_drawables 1 //可绘制元素Drawable对象的数目,1
Geometry { //Drawable :Gemetry,是可绘制对象类型之一。用指定顶点数据,绘制几何体。
DataVariance DYNAMIC
StateSet { //渲染状态。分为渲染属性和渲染模式两部分。是个状态值,直到子节点重新设置前,它的值一直沿节点树向下有效。
DataVariance STATIC
rendering_hint OPAQUE_BIN //和渲染有关的
renderBinMode INHERIT //和渲染有关的
GL_CULL_FACE OFF //和裁剪有关的
GL_LIGHTING ON //和裁剪有关的
Material { //材质
DataVariance STATIC
ColorMode OFF //光的啥啥
ambientColor 0.5 0.5 0.5 1 //环境光
diffuseColor 1 1 1 1 //漫反射
specularColor 1 1 1 1 //镜面反射
emissionColor 0 0 0 1 //自发光
shininess 1 //????????
} ////材质结束
textureUnit 0 { //纹理单元,1,可以多个。序数依次。
GL_TEXTURE_GEN_S ON //啥啥啥???
GL_TEXTURE_GEN_T ON //啥啥啥???
GL_TEXTURE_2D ON //啥啥啥???
Texture2D { //2D的贴图
DataVariance STATIC
file "Images/reflect.rgb" //贴图文件
wrap_s REPEAT //repeat嘛,很容易懂
wrap_t REPEAT
wrap_r REPEAT
min_filter NEAREST_MIPMAP_LINEAR //什么filter
mag_filter LINEAR //另一个filter
internalFormatMode USE_IMAGE_DATA_FORMAT //??
subloadMode OFF //??
}////Texture结束
TexGen { //贴图坐标?
DataVariance STATIC
mode SPHERE_MAP //啥啥球面?——"环境反射贴图,选球面就可以了"?
}////贴图坐标结束
}////纹理单元1结束
}////Geometry的stateset结束
useDisplayList TRUE //显示模型的列表????
Primitives 1 //貌似是Gemotry的图元信息
{
DrawArrayLengths TRIANGLE_STRIP 0 984 //画几何面?985个?
{
3
// 略一堆面?的数值。。。3是指3边形么?@v@
}
} ////primitives完
VertexArray 7772 //顶点坐标
{
// 略一堆表示顶点的数值。
0.701499 2.00244e-05 0.71267
0.501693 4.00296e-05 0.865046
0.465203 0.372921 0.802818
}
NormalBinding PER_VERTEX //法向量绑定方式,每个顶点
NormalArray 7772 //法向量数组
{
0.254622 -0.918791 -0.301648
0.440603 -0.85537 -0.272417
0.244499 -0.920072 -0.306084
}
ColorBinding OVERALL //Geometry的颜色绑定,啥意思我也不知。
ColorArray Vec4Array 1 //颜色的值
{
0.8 0.8 0.8 1
}
TexCoordArray 0 Vec2Array 7772 //应该是修饰顶点的啥东西=.=
{
0 0
// 略一堆。。。。。。数值。
}
}////Geometry完
}////Geode完
}////Group完
总结一下
一个根节点Group,名字叫Group0,它的属性和参数包括:
UniqueID
DataVariance
cullingActive
num_children
1个Geode
Geode,名字叫"cow.osg",它的属性参数包括
DataVariance
name "cow.osg"
cullingActive
num_drawables
1个Geometry
这1个Geometry的属性参数包括
DataVariance
StateSet
useDisplayList
Primitives
VertexArray
NormalBinding
NormalArray
ColorBinding
ColorArray
TexCoordArray
其中StateSet又有
DataVariance STATIC
rendering_hint
renderBinMode
GL_CULL_FACE
GL_LIGHTING
Material
1个textureUnit
Material和textureUnit又有各自的blablabla.....
细读cow.osg的更多相关文章
- [OSG][转]osg格式文件
转自:http://blog.csdn.net/timothyfly/article/details/7826139 osg格式文件中如何处理多个节点共享一个子节点 下面一段程序中,共有三个Group ...
- osg矩阵变换节点-----平移旋转缩放
osg矩阵变换节点-----平移旋转缩放 转自:http://www.cnblogs.com/ylwn817/articles/1973396.html 平移旋转缩放这个三个是osg矩阵操作中,最常见 ...
- 推荐一篇好文:OSG OSGearth vs2010编译
链接:http://weibo.com/p/2304189447a8480102v2c2 此文作者把用到的相关代码包放在:http://pan.baidu.com/s/1qW9a4zU 按照步骤操作完 ...
- OSG配置问题
BUILD_OSG_ARAPPERS: 这一项要选,不然后面编译自己的测试程序的时候,会报无法打开文件"osgIntrospectiond.lib"错误. Could not fi ...
- 【OSG学习笔记之一:】OSG+VS2010+win7 64位环境搭建
虽然出生的时候,没有说过“Hello World!”,但是自从走上了编程之路,每一次输出“Hello World!”的时候,都觉得好比中了彩票大奖似的: 仔细算算,从2012年暑假到现在,经历了3年半 ...
- osg osgDB::Options noTexturesInIVEFile ForceReadingImage dds_flip
osgDB::writeNodeFile(node, path, new osgDB::Options("noTexturesInIVEFile")); noTexturesInI ...
- osg 纹理访问器
#include<osgViewer/Viewer> #include<osg/Node>#include<osg/Geode>#include<osg/Gr ...
- OSG+VS2010+win7环境搭建---OsgEarth编译
OSG+VS2010+win7环境搭建---OsgEarth编译 转:http://www.cnblogs.com/hnfxs/p/3161261.html Win7下 osg+vs2010环境搭建 ...
- OSG第一个Demo
环境:Vs2010 OpenSceneGraph-3.0.1-VS10.0.30319-x86-debug-12741 OpenSceneGraph-3.0.1-VS10.0.30319-x86-re ...
随机推荐
- Java多线程编程核心技术---学习分享
继承Thread类实现多线程 public class MyThread extends Thread { @Override public void run() { super.run(); Sys ...
- 循环中的continue功能
在oracle存储过程中,有时我们希望在循环中为某种情况时不做任何处理,类似于c语言中的continue,跳过本次循环:在oracle 11g中好像增加了这个关键字,在之前版本中我们可以通过如下方式来 ...
- Android网络请求通信之Volley
一.Volley简介 Volley网络框架是Google公司在2013年发布的一款Android平台上的网络请求通信库.以下是对Volley的简单归纳. Volley的优点: 使网络通信更快.更简单. ...
- bzoj1441 MIN
Description 给出n个数(A1…An)现求一组整数序列(X1…Xn)使得S=A1*X1+…An*Xn>0,且S的值最小 Input 第一行给出数字N,代表有N个数 下面一行给出N个数 ...
- MVVM开发模式简单实例MVVM Demo
本文主要是翻译Rachel Lim的一篇有关MVVM模式介绍的博文 A Simple MVVM Example 并具体给出了一个简单的Demo(原文是以WPF开发的,对于我自己添加或修改的一部分会用红 ...
- PHP格式化显示文件大小函数
用filesize() 函数可以返回文件的大小,可是返回值是以字节(B)为单位的,看起来不方便.怎么让它根据文件的大小自动以KB.MB.GB为单位显示呢,用下面这个函数就可以实现了. <?php ...
- poj 1192
此题亦一眼看出算法,一次AC. 没什么好讲的,就是一个普通的树形动规. 用dp[n][0]表示n号顶点不取时的最大值,dp[n][1]表示n号顶点取时的最大值. dp[n][0]=max{dp[x][ ...
- 介绍一个非常好用的跨平台C++开源框架:openFrameworks
介绍一个非常好用的跨平台C++开源框架:openFrameworks 简介 首先需要说明的一点是: openFrameworks 设计的初衷不是为计算机专业人士准备的, 而是为艺术专业人士准备的, 就 ...
- php生成随机字符串
<?php echo make_random_str(); function make_random_str() { $arr = ["A","B",&q ...
- swift 001
swift 001 = 赋值是没有返回值的 所以 int a=10; int b=20; if(a=b){ printf("这个是错误的"); } swift 中的模运算 是支 ...