上一页 1 ··· 4 5 6 7 8 9 10 11 下一页
摘要: 这篇文章的内容是一个老生常谈的问题----> 函数是如何被调用的。本文用汇编代码研究函数调用的过程,参数调用的方式,函数值的返回。1. 函数是如何实现调用的 函数的调用是用call 和 ret 指令实现的。这里首先简单说明下这call指令的作用:call指令与跳转指令相似,但是不同的是保持返回信息, 即将下一个指令入栈,当遇到ret的时候,返回到这个地址。 呵呵,有点抽象, 下面就用实例来说... 阅读全文
posted @ 2010-10-11 19:23 sld666666 阅读(4779) 评论(5) 推荐(1) 编辑
摘要: STL 中的list是对链表的封装。本次剖析的对象是SGI STL。注:和原版的SGI STL 代码有出入,主要体现在:内存分配上, 变量的命名方式上,还有N多代码的省略上,所以本文章贴出的代码只适合参考一下。1. 链表的特点 - O(1)级的插入和删除。 - 其绝对位置未知,所以不能被索引化,不支持随机存储。 - 查找其中某一元素的时候效率低下。2. list支持的操作 在STL中,list是对... 阅读全文
posted @ 2010-09-28 21:01 sld666666 阅读(1862) 评论(0) 推荐(0) 编辑
摘要: 这篇文章记录DirectX 10.0中几个重要的结构体。1. ID3D10Device: Direct3D 10.0的适配器,用来准备渲染, 创建Direct3D 资源,创建shader。2. D3D10_DRIVER_TYPE: Device的类型[代码]3. ID3D10RenderTargetView: 可以想象为一个画布,所有的东西都在其上面画。我们可以看下其继承关系: 4. ID3D10... 阅读全文
posted @ 2010-09-23 18:40 sld666666 阅读(1946) 评论(0) 推荐(0) 编辑
摘要: 1.1 Effect Files Effect file 就是一个.fx文件。constant buffers可以用来保存”全局的”变量然后把这些变量交由着色器。而这个效果就是写在.fx文件中的。当然如果一个Effect file要能够被着色器和constant buffer使用,其至少要包含一个technique。而一个technique至少包含一个通道(pass)。 .... 阅读全文
posted @ 2010-09-21 20:37 sld666666 阅读(776) 评论(0) 推荐(0) 编辑
摘要: 1. The Rasterization Stage(光栅处理阶段) The Rasterization Stage(光栅处理阶段) 是渲染管道的第四个阶段,这个阶段的主要工作是,根据摄像机镜头的区域裁剪几何体, 把3D几何体映射到屏幕上。1. 1 The Clipping Stage(裁剪阶段)。 裁剪过程发生在光处阶段。如图 1所示。一个摄像机的镜头区域是一个锥形体(frustum),如果一个... 阅读全文
posted @ 2010-09-21 17:23 sld666666 阅读(2141) 评论(0) 推荐(0) 编辑
摘要: The Geometry Shader Stage(几何着色阶段)是渲染管道的第三阶段。这个阶段是可选的。几何着色阶段的输出的是整一个图元。例如,如果我们在渲染一系列三角形。经过了顶点着色之后,输入几何着色器的是三角形的3个顶点,而输出的就是三角形。(注意的是,这个三个顶点已经被顶点着色器转换过了)。利用几何着色器的主要优点是它可以创建和销毁几何图形。例如,输入的图元和可以扩展成一个或多个图元。当... 阅读全文
posted @ 2010-09-20 22:59 sld666666 阅读(695) 评论(0) 推荐(0) 编辑
摘要: The Vertex Shader Stage(顶点着色阶段)是渲染管道的第二个阶段。它的主要工作职责是输入一个顶点,执行坐标变换、蒙皮(Skinning)和光照计算,然后输出这个顶点。 顶点着色是GPU为每一个顶点执行的,当然这非常快。 通过顶点着色,我们可以实现许多非常有用的效果(如: 坐标变换, 灯光, 位移映射)。1. Local Space and World Space 一个3D物体,... 阅读全文
posted @ 2010-09-20 21:39 sld666666 阅读(1007) 评论(0) 推荐(0) 编辑
摘要: (最近在看龙书10.0, 这篇文章是是关于Rendering Pipeline的The Input Assembler stage的总结) Rendering pipeline(渲染管道)提供了一整套从摄像机视口的3D场景转化为2D图片的步骤。图 1显示了 渲染管道的不同时期。 图 1 下面的文章以及以后会有几篇逐步介绍Direct 10.0 Rendering Pipeline渲染管道的不同时期... 阅读全文
posted @ 2010-09-18 16:59 sld666666 阅读(2946) 评论(2) 推荐(1) 编辑
摘要: 1. Textures and Data Resource Formats 一个2D纹理,就是一组数据的矩阵。一个典型的2D纹理就是一张2D图片。在2D图片中,每一个元素保存着像素的颜色。1D 纹理可以认为是1为数组, 3D纹理可以认为是3维数组。一个纹理,它是不能存储任何格式的数据的,它只能存储一个类型的格式的数据。这些类型在DXGI_FORMAT中列出来。 如: DXGI_FORMAT_R3... 阅读全文
posted @ 2010-09-16 20:26 sld666666 阅读(1058) 评论(0) 推荐(0) 编辑
摘要: union就是表示两个变量共用了同一块内存地址, 如果我们改变了其中一个,另一个也会随之改变。如现在我们想要一个3维的点, 我们既需要普通方式访问3个点,又需要索引方式访问。我们可以创建如下的结构体:[代码]完成以后就有如下测试代码:[代码]结果为: 1 2 3     1 2 3     3 2 1     3 2 1 阅读全文
posted @ 2010-09-14 11:50 sld666666 阅读(338) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 下一页