05 2016 档案
摘要:1>cvblob.lib(cvblob.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(the_first.obj 中) 1>cvblob.lib(cvtrack.obj) : error LNK2038: 检测到
阅读全文
摘要:关于shader的一个简短的历史 在DirectX8之前,GPU有一个固定的方法去变换顶点和像素,称为“固定管线”。这使得在将它们传递给GPU后,开发者不可能操作顶点和像素的变换。 DirectX8介绍了顶点着色器和像素着色器,这使得在通过渲染管线时,开发者可以决定顶点和像素如何被处理,这给了开发者
阅读全文
摘要:XNA Math Vectors 在direct3D 9 和10中,包含3D数学库的D3DX库支持向量和其他核心类型的计算。在direct11中,D3DX库不在包含3D数学库,取而代之的是XNA数学库。XNA利用的是特殊的硬件寄存器。在windows环境中,XNA数学库使用SSE2(Streamin
阅读全文
摘要:Swizzling and Masking 如果你使用输入、常量、临时寄存器作为源寄存器,你可以彼此独立地swizzle .x,.y,.z,.w值。如果你使用输出、临时寄存器作为目标寄存器,你可以把.x,.y,.z,.w值用作write masks。 下面是一些细节:Swizzling (only
阅读全文
摘要:之前我们学习了如何声明顶点着色器、如何设置常量寄存器中的常量。接下来我们学习如何写和编译一个顶点着色器程序。 在我们编译一个顶点着色器之前,首先需要写一个。 有17种不同的指令(instruction),它们的句法如下: 1. add 参数:dest,src1,src2 作用:src1+src2 2
阅读全文
摘要:一次只有一个vertex shader是活跃的。你可以有多个vertex shader,如果一个物体特殊的变换或者灯光,你可以选择合适的vertex shader来完成这个任务。 你可能想使用vertex shaders在每个物体或每个网格上,例如,十个网格,你可以使用十个不同的vertex sha
阅读全文
摘要:Vertex shader Architecture: 所有在vertex shader中的数据都用128-bit的quad-floats表示(4x32-bit)。 vertex shader线性地执行程序——一个指令(introduction)一个指令地执行。它不允许循环、跳跃、条件分支。在Dir
阅读全文
摘要:光照用来表示材质和光源之间的相互作用。光照可以和颜色,纹理,以及透明度等一起使用,共同形成屏幕上的视觉外观效果。 主要存在三种类型的着色处理方法:扁平、Gouraud、Phong。这3种方法分别基于多边形,顶点,像素来计算光照效果。 扁平着色处理是以三角形为单位进行颜色计算,然后用这种颜色对三角形进
阅读全文
摘要:1)平移变换 从一个位置到另一个位置的变换可以用平移矩阵T表示,该矩阵通过向量t=(tx,ty,tz)对实体进行平移操作。 其实还有另外一种形式(以左手坐标系为基准): 第一种形式(以右手坐标系为基准的)进行变换时将T与需要变换的点或向量A(列向量)相乘,即TA。第二种形式(以左手坐标系为基准)将需
阅读全文
摘要:在实时计算机图形学中,可以将管线结构粗略地分为3个阶段:应用程序、几何、光栅。 应用程序阶段由应用程序来驱动,因此可以通过软件来实现。这个阶段可以包括碰撞检测、加速算法、动画以及力反馈等。几何阶段,可以用软件或硬件实现,包括变换、投影、光照等处理。此阶段主要计算绘制的内容、如何绘制,以及在什么地方绘
阅读全文
摘要:优点:伸展树(splay tree)是一种能自我调整的二叉搜索树(BST)。虽然某一次的访问操作所花费的时间比较长,但是平摊(amortized) 之后的访问操作(例如旋转)时间能达到O(logn)的复杂度。对于某一个被访问的节点,在接下来的一段时间内再次频繁访问它(90%的情况下是这样的,即符合9
阅读全文
摘要:映射表(map) 在每个条目被插入时将之按键进行排序。取迭代器指向值时将返回value_type结构,它有两个数据成员:first,second。访问first获得键的数据,访问second获得值的数据。 除了迭代器访问外,映射表还提供通过它们的键值随机访问的接口(可以用数组进行访问)。 注意 !!
阅读全文
摘要:此warning产生的原因是因为标识符过长,超过了最大限定255个字类名超过了255个字,使用时就会报4786的waring。在使用STL(C++标准模板库)的时候经常引发类似的错误,尤其是vector,map这类模板类,模板中套模板,一不小心就超长了。解决方法有两种,一种是直接定义别名: #ifd
阅读全文
摘要:这篇文章所述只是本人遇到的问题,仅供参考。 使用指针指向动态分配内存的结构或对象时,有几件事情需要注意。 1. 你要负责在使用完对象后释放所有分配的内存。容器并不知道将使用何种类型,所以它们不可能帮你自动释放内存。 2. 许多运算可能会失败,这是因为它们直接对对象或结构的指针进行操作,而不是对对象或
阅读全文
摘要:1. 定义反向迭代器(Reverse Iterator)是一种反向遍历容器的迭代器。也就是,从最后一个元素到第一个元素遍历容器。反向迭代器将自增(和自减)的含义反过来了:对于反向迭代器,++运算将访问前一个元素,而--运算则访问下一个元素。2. 作用(1)反向迭代器需要使用自减操作符:标准容器上的迭
阅读全文
摘要:流迭代器是一种迭代器适配器。istream_iterator用于读取输入流,ostream_iterator用于写输出流。这些迭代器将它们所对应的流视为特定类型的元素序列。使用流迭代器时,可以用泛型算法从流对象中读数据或将数据写入到流对象中。 流迭代器的构造函数如下: 流迭代器的基本操作如下: 1、
阅读全文

浙公网安备 33010602011771号