上一页 1 ··· 29 30 31 32 33 34 35 36 37 ··· 70 下一页
摘要: 全局光源•一些影响整个场景的元素,比如太阳光和雾•需要在整个屏幕上进行计算•顶点坐标,法线,颜色以及材质的参数均以纹理的形式输入。•光照计算在象素着色器中实现。•计算输出先储存在一个中间的光照缓冲中。局部光源•局部光源的光照效果只影响到整个场景的一部分•我们只计算受相关光源影响的象素。•这需要将光源体投影到屏幕空间•利用GPU很容易对象素按光源进行分类。•在场景构造时,我们建立一个简单的网格来表示光源影响的空间区域,在游戏运行时,在3D空间中对这个网格包围的象素进行光照计算。以下是延迟光照的关键部分,水平有限,如有错误还请谅解。延迟光照的关键点之一,如何找到光照体积网格中的象素。首先渲染光源体 阅读全文
posted @ 2011-07-19 17:24 oayx 阅读(618) 评论(0) 推荐(0) 编辑
摘要: 延迟着色是一种对3d场景进行后期照明的技术,这种技术突破了以往渲染系统支持多重动态光源时,效率以及各种性能急剧下降的的限制。从而使得一个3d场景可以支持成百上千个动态光源的效果。 它的技术思路主要将3d场景的几何光照信息(位置、法线、材质信息)渲染到render target上,把它们从世界的三维空间转变成屏幕的颜色空间,作为光照计算时的输入,接着,对每一个光源,使用这些信息输入来进行计算生成一帧,然后把这样的一帧(render target)合成到结果的帧缓存上,这样当遍历完所有的光源,计算就完毕了,帧缓存上的图像就是最后的渲染结果。概述:延迟着色的优势1.它能让你在绘制几何图形的时候不需要 阅读全文
posted @ 2011-07-19 17:23 oayx 阅读(684) 评论(0) 推荐(0) 编辑
摘要: Bloom必须使用Pixel Shader,这相当于一个图像处理的过程大致步骤如下:先对图片(或是渲染结果)做一个Brighter Pass,检测每个像素的亮度值,若大于指定的却值就保留其颜色,反之将其置为黑色输出,这一步是为了仅对高亮的部分产生光晕效果2.对上一步的结果做高斯模糊,或其他种类的模糊,具体根据需要而定,最简单的就是对四周临近4个像素采样求平均值3.将模糊后的图片叠加到原始图片上,即颜色相加具体代码可参考dxsdk中的Post Processing,其中就有Bloom效果,它和边缘检测联用还可以作出诸如边缘光晕这类的特效 阅读全文
posted @ 2011-07-19 17:04 oayx 阅读(1020) 评论(0) 推荐(0) 编辑
摘要: bloom, Fake HDR, True HDR概念HDR在我旧网上有说过原理,主要是参考了gamedev上的文章.现在把这几个放一起解释一下.这些后期处理技术都是为了实现发光特效(glow effect)HDR, 指高动态光范围,类似于暴光的效果,由于rgb分量在计算机显示时超出255范围的就被丢弃,所以暴光效果表示不太出来,于是使用了一些方法来得到这样的效果, 一般常用方法就是把高光找出来模糊后加色混合原场景.bloom 和 Fake HDR(伪HDR), True HDR(真HDR)原理都差不多,主要是在实现方法上的不同, 如下所示实现方法:1. bloom的实现: 只渲染发出的光芒到 阅读全文
posted @ 2011-07-18 21:26 oayx 阅读(1828) 评论(0) 推荐(0) 编辑
摘要: 如有转载请注明出处:http://blog.csdn.net/tianhai110/ 在3D游戏开发中,通常需要将文本变成纹理,以便于3D显示。本文阐述了如何通过GDI来生成D3D纹理的方法。 由于汉字多达5000字以上,为每个汉字制作相应图片,显然是不现实的;并且不能够改变字体。 最容易想到的当然是WIN32的GDI绘字,这是最简单,最常用的方法,并且可以改变字体、大小、样式。但缺点也是显而易见的,如果每帧都不断切换GDI,性能将大打折扣。其实,D3D的 ID3DXFONT也是利用GDI来绘字,在direct3d 9.0以前的这个是相当慢的,dx9.0后,微软对其进行了大改,性能有了质的飞跃 阅读全文
posted @ 2011-07-17 21:14 oayx 阅读(1948) 评论(2) 推荐(0) 编辑
摘要: 转载请注明出处:http://blog.csdn.net/tianhai110非真实感绘制(Non-photorealistic rendering)(NPR)是计算机图形学的一类,主要模拟艺术式的绘制风格,也用于发展新绘制风格。和传统的追求真实感的计算机图形学不同,NPR受到油画,素描,技术图纸,和动画卡通的影响。NPR已经以"卡通造影"的形式出现在电影和电子游戏中,它也已出现在设计图纸和试验动画中(一)卡通渲染卡通渲染是一种特殊的非真实感绘制技术,它要求帖图由不明显的渐变色块夹杂一些不复杂的纹理组成。它强调粗细线条和简单色块,忽略细节。利用这些很简单很纯粹的线条和色块, 阅读全文
posted @ 2011-07-17 21:11 oayx 阅读(7395) 评论(0) 推荐(0) 编辑
摘要: 最近一直在玩street fighter IV,被其夸张的角色建模、华丽的动作和漂亮的油画效果所震撼。里面的角色,在对手跳起或蹲下时,自己的头部会一直注视着对手;近身时,如果一方发出必杀技,另一方的面部将作出恐怖和惊吓的表情。这些许细节,将角色的个性表现得淋漓尽致。值得一提的是,头部注视对手的效果,2D格斗的年代,早在SNK的《世界英雄》里已经实现,虽然表现力以现在的眼光来看,确实有点粗糙,但足以一窥日本人在细节上的重视程度。 不过,真正让我惊艳的,还是bio5。日本人对于各种高端图形技术已经运用得相当成熟,整部游戏,完全的实时渲染,让人感受到一部大片的视觉享受。其对技术的熟练程度,当吾辈还. 阅读全文
posted @ 2011-06-22 18:24 oayx 阅读(1375) 评论(0) 推荐(0) 编辑
摘要: 先看看alvin_lee 朋友做的解析,我觉得还是很正确的,从算法角度阐述了他们之间的问题!实际上这个问题不光C++会遇到,其他所有语言的标准容器的实现及选择上都是要考虑的。做应用程序你可能觉得影响不大,但是写算法或者核心代码就要小心了。今天改进代码,顺便又来温习基础功课了。 还记得Herb Sutter那极有味道的《C++对话系列》么,在其中《产生真正的hash对象》这个故事里就讲了map的选择。顺便回顾一下,也讲一下我在实用中的理解。 选择map容器,是为了更快的从关键字查找到相关的对象。与使用list这样的线性表容器相比,一可以简化查找的算法,二可以使任意的关键字做索引,并与目标对象配对 阅读全文
posted @ 2011-06-14 14:20 oayx 阅读(6708) 评论(0) 推荐(0) 编辑
摘要: 1. 什么叫做FPS?什么叫做刷新率?他们两个是一回事吗?FPS是英文"Frame per second"的缩写,中文可译为:每秒钟画面更新次数。我们平时所看到的连续画面都是由一幅幅静止画面组成的,每幅画面称为一帧,FPS正是对"帧"变化速度的数值描述,单位是"帧/秒\"。一般而言,12祯就可以让人形成连贯的视觉感受,认为20FPS是RPG类游戏运行的最低标准,但对CS、极品飞车等高速游戏来说,60FPS才能得到比较理想的效果。而人眼可以接受的最大图像频率是每秒62格, 要获得最大的真实性, 就必须使视网膜的吸纳接近饱和(在这里不要和 阅读全文
posted @ 2011-05-21 12:50 oayx 阅读(2735) 评论(0) 推荐(0) 编辑
摘要: 学习D3D,应该对这三个内存理解,网上收集了一下相关资料,收藏下来。三种内存AGP内存(非本地显存),显存(本地内存),系统内存,其中我们都知道系统内存就是咱那内存条,那这AGP内存是个啥玩意啊?其实是因为在以前显卡内存都很小,那时还是在显存是16M,32M为主流的时候,如果你运行一个需要很多纹理的3D程序,那么显存一会就不够用了,那该咋办呢?只好问系统内存借点用用了!这就是AGP内存的由来,在我们电脑BIOS中有个设置AGP Aperture的选项,这里就是设置显卡可以使用系统内存的最大允许值,通常是设置为64M。注意,这里只是说最大允许值,并不是一开机他就把这64M给拿走了,你的256内存 阅读全文
posted @ 2011-05-20 15:54 oayx 阅读(1134) 评论(0) 推荐(0) 编辑
上一页 1 ··· 29 30 31 32 33 34 35 36 37 ··· 70 下一页