摘要:
最近做一个东西,要用到快速傅里叶变换,抱着蛋疼的心态,自己尝试写了一下,遇到一些问题。首先看一下什么叫做快速傅里叶变换(FFT)(来自Wiki):快速傅里叶变换(英语:Fast Fourier Transform, FFT),是离散傅里叶变换的快速算法,也可用于计算离散傅里叶变换的逆变换。快速傅里叶... 阅读全文
摘要:
最近学习计算机动画,看书千万遍都不如动手做一遍,实现了一下完整的人物蒙皮,遇到一些问题,现在把完整的实现过程记一下。理论在前一篇已经讲完了,前面也实现了基本的关节动画,现在要实现的是,使用3Dmax建立一个完整的模型,然后使用它来进行蒙皮。我的基础工具写的不是很完善,为了不分心去写其他的东西,就用了... 阅读全文
摘要:
最近2D转向3D,也从固定管线转到了可编程管线,有些细节的东西记录一下。GeometryShaderGeometryShader从VertexShader中获取数据,向Fragment Shader输出数据。GeometryShader的布局限定符:layout (a1) in;layout (a2... 阅读全文
摘要:
一般在做坐标变换的时候,会将所有顶点全部乘以一个矩阵,转换到对应的坐标系中,但是对于法线使用相同的转换是有问题的,下图解释了为什么会有问题存在:也就是法线在做相同变换后,如果变换中包含不一致的缩放(x,y,z不同),结果法线就已经不再垂直表面了(想象变形后的切线之间角度都变了),需要重新调整,所以使... 阅读全文
摘要:
最近刚开始接触计算机动画,一片空白,尝试做了一下3D蒙皮,发现数学真是差得难以想象,矩阵的什么的全部忘记了,真是接下来该恶补一下基础了……在这里把遇到的几个问题记录一下。主要参考书目:《计算机动画算法与技术》《3D游戏》(英国人写的书已经绝版了)《3D游戏引擎设计——实时计算机图形学应用方法》 《骨... 阅读全文
摘要:
OpenGL中主要包括了两种数据——Buffer和Texture。Buffer用于储存线性数无类型据块,可以看成普通的内存块,而Texture则用于储存多维数据,一般储存图像或者其他数据。BufferOpenGL中有很多绑定点,Buffer绑定在绑定点使用。使用glGenBuffers来生成一个Bu... 阅读全文
摘要:
头盔原理很简单,大致就是使用两个透镜,缩短眼睛的焦距,将两个眼睛看到的东西合二为一从而产生双屏3D效果。于是开始设想:既然有了3D效果,为了达到更加沉浸的体验,为何不将头部的运动也映射到虚拟世界中去呢?抱着这个想法,我们做了如下尝试:把头部数据(如旋转角、俯仰角等等)用陀螺仪接收传回电脑,为了简单起... 阅读全文
摘要:
英文原文中文译文1. 计算机图像硬件1.1 GPU(图像处理单元)如今,计算机拥有用来专门做图像处理显示的GPU模块,拥有独立的图像处理储存(显存)。1.2 像素和画面任何图像显示都是基于栅格的格式。一个栅格既是一张二维的像素直角坐标网。像素具有两个属性:颜色和位置。颜色通常使用RGB(红绿蓝)来表... 阅读全文
摘要:
在渲染管线中是最慢的阶段决定整个渲染的速度。我们一般使用吞吐量(throughput)来描述一个阶段的处理速度,而不是帧率。因为帧率会受到设备更新的限制而导致实际速度比帧率所标示的更慢。一个例子:假设一个设备为60赫兹,这意味着这个设备16.666666ms刷新一次,这时恰好有一管线阶段花费了62.... 阅读全文
摘要:
原文:http://blog.csdn.net/tanlijun37/article/details/1948493vector中对象指针的排序,初步想法是1: 把对象指针存到vector,重载bool operator(对象指针)2:用sort来排序例:class A{public: bool o... 阅读全文