- 博客(43)
- 资源 (6)
- 收藏
- 关注
原创 等效焦距和视场角计算
等效焦距是相对于35mm胶卷的焦距。35mm胶卷的宽和高是36mm*24mm,对角线为35mm。我们在构造视场角fov的时候有三种方式:相对于宽,相对于高,相对于对角线。下面我就相对于高度的方式来求等效焦距下的视场角。fov = 2.0*atan( (h/w)*(24*0.5)/f );h:图片的高度w:图片的宽度f:等效焦距
2016-08-03 15:19:43
7967
1
原创 法线变换
顶点是(x,y,z,1),法线的表示是(x,y,0),顶点是个点,法线是个方向。如果用用MV矩阵来直接变换法线,会造成法线的方向出错误。 法线变换:应该用变换矩阵的逆转置矩阵假设Model space中的某条切线向量是T,法线向量是N。那么由他们是垂直的可得到:TTN=0假设他们变换到Eye space中后分别是T’和N’。那么他们应该仍然是相互垂直的:T’TN’=0假设切线向量和法线的变换矩
2016-03-22 18:04:24
612
原创 深入解析投影矩阵的数学方法
齐次空间 要理解3d的齐次空间,我们先理解2d的齐次空间。 2d的齐次空间可以理解为三维空间上的向量在(x, y, 1)平面上的投影. 投影结果是(x/z, y/z, 1) 齐次矩阵 齐次矩阵能够对向量做仿射变换,也就是能够将平移加入到矩阵中,这是3*3矩阵做不到的。而4*3矩阵虽然也能做仿射变换,但是不能求逆矩阵,因为不是方阵。-齐次矩阵的透视投影 空间坐标与其投影到投影平面上的坐
2016-03-16 17:50:23
6730
原创 c++ char 运算
//要减去 '0'char a = '1' - '0';char b = '5' - '0';char c = a + b; // c = '6'
2016-02-17 11:44:40
1262
原创 学习osg渲染内核笔记
先抛出问题opengl的机制是状态机,osg是对opengl的面相对象的封装,所以场景树的渲染最终还是要用状态机来实现。osg的场景管理是用场景树来实现的,怎么转换到状态机呢?对于透明物体、hud或者天空渲染等,需要对场景对象进行排序,这个如何实现?默认的状态存在冗余,如何对opengl的状态进行优化?osg渲染内核是如何解决这些问题的?用状态树对状态进行管理用渲染树对几何体进行管理参考的
2016-02-16 11:27:07
1006
原创 osg的材质共享问题
在给drawable赋予材质的时候,会影响到相同材质的其他网格。可能是osg对相同材质的网格做了优化,将相同材质的网格放在一起渲染。非drawable的对象就不会有这个问题.
2016-02-16 09:49:47
598
原创 osg 屏幕坐标和世界坐标转换
//屏幕-〉世界:osgUtil::SceneView::projectWindowIntoObject//或者自己运算Matrix VPW = camera-〉getViewMatrix() * camera-〉getProjectionMatrix() * camera-〉getViewport()-〉
2016-01-22 16:19:17
8281
1
转载 为什么坐标变换的顺序必须是: 缩放->旋转->平移
【Math】世界坐标变换要先缩放、后旋转、再平移的原因一个三维场景中的各个模型一般需要各自建模,再通过坐标变换放到一个统一的世界空间的指定位置上。 这个过程在 3D 图形学中称作“世界变换” 。 世界变换有三种,平移、旋转和缩放 (实际还有不常用的扭曲和镜像,它们不是affine变换)。 这三种变换按各种顺序执行,结果是不同的。 可是实际的应用中一般按照 缩放 -> 旋转 -> 平移的顺序进行。
2016-01-22 14:36:03
21121
原创 openSceneGraphic 删除多个子节点
openSceneGraphic 删除多个子节点时,应当先储存要删除子节点的序号,然后做降序排列,然后删除。#include <vector>#include <algorithm>//自定义排序函数 bool SortBy(const int v1, const int v2)//注意:本函数的参数的类型一定要与vector中元素的类型一致 { return v1> v2;//降
2016-01-18 21:30:25
442
原创 OpenSceneGraphic 着色器中数组的应用
osg::ref_ptr<osg::FloatArray> fa = new osg::FloatArray(); fa->push_back(1.0f); fa->push_back(0.0f); fa->push_back(0.0f); fa->push_back(1.0f); //unf->setArray(fa); ss->addUniform
2016-01-17 21:10:40
718
原创 osg 实现动态跟新纹理数据
主要是用这个函数来更新image的数据 osg::Image* img0 = osgDB::readImageFile("C:/zq/workplace/osg/testAll/TestOsg/TestOsg/tmp/glassResource/cube.bmp"); osg::Image* img1 = osgDB::readImageFile("C:/zq/workplace/os
2015-12-04 16:22:14
3315
转载 GLSL语言内置的变量
GLSL语言内置的变量,包括内置的顶点属性(attribute)、一致变量(uniform)、易变变量(varying)以及常量(const),一方面加深印象,另一方面今天的文章可以为以后的编程做查询之用。顶点属性——指顶点的信息,OpenGL据此绘制各个图元,对于传统的顶点属性包括坐标、纹理坐标、颜色等GLSL都会设置一个内置变量与之对应,以便在需要时可以在顶点或片元着色器中直接引用,这也体现了G
2015-12-03 15:09:22
479
原创 相对路径的写法
以下为建立路径所使用的几个特殊符号,及其所代表的意义。 “./”:代表目前所在的目录。 “../”:代表上一层目录。 以”/”开头:代表根目录。
2015-11-18 11:10:34
8697
原创 gles fage着色器的默认精度设置
在片元着色器中必须设置float的默认精度,或者为每个使用的float量设置精度,否则就会出现着色器错误precision highp float;
2015-11-18 10:42:10
780
转载 .obj文件格式与.mtl文件格式
最近在学习obj文件格式,上网查了些资料,很难找到比较全面的文章,尤其是对.mtl文件的说明甚少。今天把最近搜索的资料整合了一下。这里的obj文件格式指的是Wavefront公司为它的一套基于工作站的3D建模和动画软件”Advanced Visualizer”开发的一种文件格式。 OBJ文件是一种标准的3D模型文件格式,很适合用于3D软件模型之间的互导。OBJ文件是一种文本文件格式,这就意味着你可
2015-11-16 17:29:39
5335
原创 osg下,glsl中uniform参数的flaot和double类型问题
osg下的旧版glsl不支持double类型uniform参数,传入时会报错。
2015-11-16 13:58:43
1231
转载 文章标题
Objective-C 并不是一门复杂的语言,经过一段时间的接触,你就能体会到它的优雅。Objective-C 语言实现了严格的面向对象编程,它扩展了标准 ANSI C 语言,增加了定义类和方法的语法,它还推行类和接口的动态扩展性,使任何类都能适配和采用。 Objective-C是C 语言的超集 既然是 C 语言的超集,Objective-C 支持所有 C 语言的基本语法。你可以继续按你的习惯书
2015-11-14 19:22:05
312
转载 \r与\n的区别,以及\r\n的用法
\r是回车,英文是Carriage return,作用:使光标到行首\n是换行,英文是New line/line feed,作用:使光标下移一行如果用过机械打字机,就知道回车和换行的区别了。 回车就是把水平位置复位,不卷动滚筒。换行就是把滚筒卷一格,不改变水平位置。我们平时所说的键盘Enter键换行实则应该叫做叫做回车换行(\r\n)看到一
2015-11-10 16:41:39
3177
3
转载 What’s New in OpenGL ES 3.0
What’s New in OpenGL ES 3.0 In conjunction with next-generation GPUs, OpenGL ES 3.0 will make a number of new features available to mobile and embedded devices. In terms of functionality, OpenGL ES 3.
2015-11-09 14:53:43
457
原创 glGenVertexArrays 崩溃的处理方式
在运行红宝书8版的源码的时候,遇到glGenVertexArrays调用时崩溃的问题。解决方式是在glewInit()前加入glewExperimental = GL_TRUE;
2015-11-05 11:26:38
4299
2
原创 opengl 在windows环境搭建的相关问题汇总
1.glewopengl的扩展是在gl1.1基础上进行的,用glew这个库进行扩展,所以要用这个库。最新的版本可以在官网http://glew.sourceforge.net/上下载2.glutglut已经被freelut全面替代了,可以在这里下载 http://www.transmissionzero.co.uk/software/freeglut-devel/3.gl.h这
2015-11-03 17:42:41
385
原创 c# 装饰模式
public interface IPhoneHandle { void Show(); } public class ApplePhone : IPhoneHandle { public void Show() { Console.WriteLine("ApplePhone");
2015-01-28 16:57:40
434
原创 c# 观察者模式
public interface ISubject { void Notify(); void Register(IOberver observer); void UnRegister(IOberver observer); } public class Subject:ISubject { private List observers = new List(); public void Regi
2015-01-28 16:49:53
505
原创 3d计算机数学笔记(1) 齐次矩阵与透视投影
本文目录结构:1.什么是齐次矩阵2.齐次矩阵在透视投影上的运用1.什么是齐次矩阵01.齐次空间所谓齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示。例如,二维点(x,y)的齐次坐标表示为(hx,hy,h)。由此可以看出,一个向量的齐次表示是不唯一的,齐次坐标的h取不同的值都表示的是同一个点,比如齐次坐标(8,4,2)、(4,2,1)表示的都是二维点(4
2015-01-26 17:30:32
2770
原创 naudio 播放mp3
var waveOutDevice = new WaveOut(); var audioFileReader = new AudioFileReader("test.mp3"); waveOutDevice.Init(audioFileReader); waveOutDevice.Play();
2014-07-29 00:08:10
3306
1
原创 CERTI架构剖析
待整理...CERTI采用层次式结构模型联邦管理即管理联邦执行第一个加入仿真的联邦成员可以删除联邦执行联邦执行退出顺序:联邦成员,局部RTI上联邦执行与局部RTI,中心RTI上联邦执行RTI根据FED文件生成全联邦都一至的各类数据列表:联邦执行列表 记录联邦执行的ID值和联邦执行名联邦成员列表 记录参与联邦执行的每个联邦成员的
2013-04-19 10:46:12
4882
2
原创 HLA简介
待整理...RTI (Run-Time Interfrastructer)运行支撑框架OMT(Object Model Template)对象模型模板定义信息交互的格式和内容Rules框架与规则集它给出了HLA采用的术语、系统的组成和一套规则。interface specificationRTI接口规范1.规则
2013-04-19 10:45:30
5264
1
原创 CERTI 实例billard剖析
先做CERTI主要模块剖析类剖析RTIambassador联邦代理类代表RTIA,实现了6大服务头文件在RTIambServices.hh中联邦管理createFederationExecutionjoinFederationExecutionregisterFederationSynchroniztionPoint声明管理对象管理所有权管理
2013-04-19 10:26:42
1989
1
原创 osgOcean与osgEarth融合技术细节
osgOcean与osgEarth融合的主要技术问题有2点:1.osgOcean是平面的海洋,所以不支持osgEarth球面。2.osgEarth渲染最终依靠shader完成,并且自带一套着色器合成框架ShaderCompliction;这与osgOcean的着色器系统不兼容。待续...
2013-04-15 10:41:07
6532
3
原创 矩阵变换:逆矩阵的推导
求矩阵的逆是个复杂的过程,主要分为以下三个过程:矩阵的行列式、代数余子式通过代数余子式求矩阵的逆通过正交矩阵求矩阵的逆1. 矩阵的行列式、代数余子式01.行列式(determinats)方阵M的行列式记作|M|或“det M”。2阶方阵的行列式定义:将主对角线和反对角线上的元素各自相乘,然后用主对角线元素的积减去反对角线元素的积。3阶方阵
2013-04-09 15:26:21
7186
原创 矩阵变换:沿任意方向缩放、镜像、正交投影及切变及其推导
镜像、正交投影和切变的推导都可根据缩放变形而来。在要缩放方向上去缩放因子k,如果|k|1,物体“膨胀”;k=0,正交投影;k1. 缩放01. 沿坐标轴缩放2D中有两个缩放因子Kx和Ky,p和q是原来的基向量,缩放因子单独影响基向量,得到p`和q`:得到缩放矩阵:3D中增加缩放因子Kz02.沿任意方向缩放设n
2013-04-09 10:18:15
19042
2
OpenSceneGraphReferenceDocs-3.4.0
2015-11-09
unity3d 真实世界地形插件
2014-03-05
Introduction to 3D Game Programming with DirectX 9.0(中文版)
2011-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人