上一页 1 ··· 25 26 27 28 29 30 31 32 33 ··· 70 下一页
摘要: Multiple Render Target(MRT)是一种指可以使绘制程序在单帧中同时渲染多个Render Target,也就是一次Draw可以将不同的信息分别画入多个Surface。是利用Pixel Shader实现Post-Process效果中很重要的一部分。 如在上一篇Pixel Motion Blur中,单帧渲染中返回了场景中原有的画面颜色同时还有该像素点的运动速度,超出单一Surface所能表现的数据宽度的部分就是通过Multiple Render Target渲染到另一个Surface上,有了Multiple Render Target的支持,我们在Pixel Shader中就. 阅读全文
posted @ 2012-01-18 10:08 oayx 阅读(2423) 评论(0) 推荐(0) 编辑
摘要: 这个比较基础了,不过基础最重要,往往应该理解透彻,并且反复复习。 我们知道在3D画面渲染过程中对于模型的计算的一部分被称为Transforming and Lighting(T&L)阶段,其中Lighting表示光照,而Transforming就是指的坐标变换,这两部分的计算也是3D场景中计算最重要基础的一步。 空间坐标变换主要的工作就是将处于局部坐标系的模型转换到用户屏幕所在的屏幕坐标系内。 而这个过程的计算上主要是来自线性代数中的知识,我们知道在线性代数中,线性的变换是可以用矩阵来表示的,而通过将向量[x,y,z,w]同变换矩阵相乘即可完成相应的变换,这正是我们实现空间坐标变换的数 阅读全文
posted @ 2012-01-18 10:07 oayx 阅读(12985) 评论(1) 推荐(0) 编辑
摘要: 环境映射是一种用来模拟光滑表面对周围环境的反射的技术,常见的如镜子、光亮漆面的金属等等。 这种技术的实现主要通过将一张带有周围环境的贴图附在所需要表现的多边形表面来实现的。目前在实时3D游戏画面渲染中经常使用的有两种环境映射。 球形环境映射(Spherical Environment Mapping) 球形环境映射是模拟在球体表面产生环境映射的技术,通过对普通贴图的UV坐标进行调整计算来产生在球体表面应产生的扭曲。 UV的计算利用球体表面的法线来计算。计算公式如下: u=Nx/2+0.5 v=Ny/2+0.5 计算公式中的Nx和Ny是表面法线的x和y分量,除以2将区间限制在[-0... 阅读全文
posted @ 2012-01-18 10:06 oayx 阅读(1598) 评论(0) 推荐(0) 编辑
摘要: 好吧,既然顶点变换都花那么多时间写了,把光照也写了吧。 不过这个比起顶点变换应该好写多了,至少不用画那么多矩阵和公式了。 经过是空间坐标变换的模型的位置和角度得到了正确的诠释,但是这些信息只够我们来绘制模型的边框,对于物体表面的细节表现,就无能为力了,这就需要我们来进行光照的计算。 实时渲染的游戏画面通常使用经典的Phong光照模型来进行计算,不同的情况下可能计算的公式会有细微调整,但都是利用环境光+漫反射光+镜面反射光的模型来描述光对物体表面的影响。 环境光 环境光主要模拟场景中普遍存在的光源和各个物体反射过来的光线,位于理想的模型中的环境光是均匀的分布在场景的各个角落,均匀的照射在... 阅读全文
posted @ 2012-01-18 10:06 oayx 阅读(741) 评论(0) 推荐(0) 编辑
摘要: Tone Mapping原是摄影学中的一个术语,因为打印相片所能表现的亮度范围不足以表现现实世界中的亮度域,而如果简单的将真实世界的整个亮度域线性压缩到照片所能表现的亮度域内,则会在明暗两端同时丢失很多细节,这显然不是所希望的效果,Tone Mapping就是为了克服这一情况而存在的,既然相片所能呈现的亮度域有限则我们可以根据所拍摄场景内的整体亮度通过光圈与曝光时间的长短来控制一个合适的亮度域,这样既保证细节不丢失,也可以不使照片失真。人的眼睛也是相同的原理,这就是为什么当我们从一个明亮的环境突然到一个黑暗的环境时,可以从什么都看不见到慢慢可以适应周围的亮度,所不同的是人眼是通过瞳孔来调节亮度 阅读全文
posted @ 2012-01-18 10:04 oayx 阅读(4883) 评论(0) 推荐(0) 编辑
摘要: 老早就想实现 Depth of field 的效果了,这几天终于有点时间来好好学习并加以实现。使用的是Render Monkey 1.71, Render Monkey的sample里的DOF的稍微有点复杂,不过效果很漂亮。我觉得只要知道了原理并实现了基本的效果就可以了o(∩_∩)o...一共分为4个pass 前两个pass效果一样 在两个不同的位置渲染两个teapot到BackBuffer这张纹理,并保存下相对聚焦区域的深度值 //渲染物体的VS代码structVS_OUTPUT{float4Pos:POSITION;float2Tex:TEXCOORD0;float3View:TEXCO. 阅读全文
posted @ 2012-01-18 10:02 oayx 阅读(952) 评论(0) 推荐(0) 编辑
摘要: 原文链接: http://www.ownself.org/oswpblog/?p=50 算法原理来自ATI实验室Guennadi Riguer、Natalya Tatarchuk、John Isidoro的论文“Real-Time Depth of Field Simulation”,本文只是对原理和过程进行简述,具体内容请参见原文。 我们知道视频游戏追求的目标就是完全真实的画面,但是早先的大部分游戏的画面在看上去似乎都缺了些什么,让画面看上去在任何角度任何距离都是完全锐利的,而这种情况在现实中是不存在的,因为有景深的存在。完全锐利的画面虽然完美,但是却让人看上去感觉不真实,这是因为在现实世. 阅读全文
posted @ 2012-01-18 09:59 oayx 阅读(1953) 评论(0) 推荐(0) 编辑
摘要: 概述 加壳的全称应该是可执行程序资源压缩,是保护文件的常用手段。 加壳过的程序可以直接运行,但是不能查看源代码.要经过脱壳才可以查看源代码。 加壳的另一种常用的方式是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,做一些额外的工作。大多数病毒就是基于此原理。 加壳的程序经常想尽办法阻止对程序的反汇编分析或者动态分析,以达到它不可告人的目的。这种技术也常用来保护软件版权,防止被软件破解。 编辑本段详细信息概念 加壳:其实是利用特殊的算法,对EXE、DLL文件里的资源进行压缩、加密。类似WINZIP 的效果,只不过这个压缩之后的文件,可以独立运行,解压过程完全隐蔽,... 阅读全文
posted @ 2012-01-17 14:50 oayx 阅读(1254) 评论(0) 推荐(0) 编辑
摘要: 为了便于说明,首先假设存在下列的顶点缓冲和索引缓冲vb={{-1.0, 1.0, 0.0},index 0{ 1.0, 1.0, 0.0},index 1{ 1.0,-1.0, 0.0},index 2{-1.0,-1.0, 0.0},index 3 {-2.0, 2.0, 0.0},index4{ 2.0, 2.0, 0.0},index 5}和对应该顶点缓冲的一组索引缓冲ib初学D3D,DrawIndexedPrimitive这个函数是个难点,主要是MSDN中的解释不是很明确,这个函数共6个参数,下面对这6个参数进行一下详细的解释。参数1:D3DPRIMITIVETYPE type-图元类 阅读全文
posted @ 2012-01-07 21:53 oayx 阅读(482) 评论(0) 推荐(0) 编辑
摘要: #include"stdafx.h"#include<windows.h>constunsignedlongglobe_Crc32Table[256]={0x00000000,0x04c11db7,0x09823b6e,0x0d4326d9,0x130476dc,0x17c56b6b,0x1a864db2,0x1e475005,0x2608edb8,0x22c9f00f,0x2f8ad6d6,0x2b4bcb61,0x350c9b64,0x31cd86d3,0x3c8ea00a,0x384fbdbd,0x4c11db70,0x48d0c6c7,0x4593e01 阅读全文
posted @ 2012-01-01 09:53 oayx 阅读(2827) 评论(0) 推荐(0) 编辑
上一页 1 ··· 25 26 27 28 29 30 31 32 33 ··· 70 下一页