实时渲染
realxie
网易游戏研发工程师
展开
-
[实时渲染] 2. 图形渲染管线
"一条锁链不比它最弱的一环坚实” (A chain is no stronger than its weakest link) ----匿名 本章节呈现了实时渲染中最核心部分:图形渲染管线,简称管线。管线的主要功能是根据给定的虚拟摄像机,3维模型,灯光,着色方程,纹理以及其它的资源来生成一个2维的图像,渲染管线是实时渲染的底层工具。图2.1描述了管线的流程,在该翻译 2016-04-10 22:10:13 · 1022 阅读 · 0 评论 -
[实时渲染] 3.1 GPU管线综述
第二章介绍了GPU实现的几何与光栅化概念上的管线阶段,被分为几个不同程度配置性或编程性的硬件阶段。图3.3展示了根据可配置性和可编程性进行颜色分类的几个阶段。注意到这几个被分割的物理阶段与第二章讲的功能阶段有轻微的不同。 顶点着色器是完全可编程的阶段,通常用于实现模型视图变换,顶点着色以及投影(一个功能阶段)。几何着色器是一个可选的完全可编程的阶段来处理图元(点,线和三翻译 2017-11-07 12:08:16 · 517 阅读 · 0 评论 -
[实时渲染] 3. 图形处理单元-GPU
“显示就是计算机”- 黄仁勋 历史上,硬件图形加速开始于管线的尾端,最初用于执行三角形扫描线的光栅化,后续代的硬件工作从管线的尾端到更前端的应用程序阶段的算法都被提交给硬件加速器,这意味着硬件相较于软件的优势仅仅是速度,但速度是非常重要的。 过去的几十年里,图形硬件经历了不可置信的变化,第一块消费级的带有硬件顶点处理的图形芯片(NVIDIA的GeForce256)发翻译 2017-11-07 12:07:11 · 664 阅读 · 0 评论 -
[unity3d] 模型XRay效果实现
XRay效果常常用来显示被墙体及其它物体遮挡的物体的轮廓。算法原理:使用两个Pass对人物进行绘制,其它第一个Pass正常对人物进行绘制,第二个pass使用半透明模式根据Z-Test绘制被遮挡的部分。引擎对不透明物体(Opaque)和半透明物体进行分开绘制,并且一定是先绘制Opaque物体,然后再绘制半透明物体,所以可以在第二Pas原创 2017-09-17 15:37:03 · 3142 阅读 · 0 评论 -
[实时渲染] 2.5 回顾渲染管线
点,线和三角形是组成模型和物体的渲染图元,想像应用是一个交互的计算机辅助设计(CAD)应用,用户正在检查一个手机的设计,我们将要跟随这个模型通过整个图形渲染管理,这包含3个主要阶段:应该程序,几何以及光栅化阶段,场景被透视地渲染到屏幕的窗口上。在这个简单的例子中,手机模型包含线(来显示部件的边缘)和三角形(来显示表面),某些三角形被二维图片进行贴图来呈现键盘和屏幕。在这个例子中,着色完全发生在几何翻译 2016-04-10 22:15:43 · 850 阅读 · 0 评论 -
[实时渲染] 2.4 光栅化阶段
给定变换和投影过的顶点以及相关的着色数据(来自几何阶段),光栅化阶段的目的是计算并设置被物体覆盖的像素的颜色,该过程也称为光栅化或扫描转换(scan conversion),是将屏幕空间带z值(深度值)的二维顶点及其相关的各种着色信息转换到屏幕上的像素。 如几何阶段相似,该阶段也被分成几个功能阶段:三角形设置,三角形遍历,像素着色,混合,如图2.8所示。2.翻译 2016-04-10 22:14:09 · 2538 阅读 · 0 评论 -
[实时渲染] 2.3 几何处理阶段
几何处理阶段的职责是逐多边形和逐顶点操作,该阶段被进一步分成如下几个阶段:模型视图变换,顶点着色,投影,裁剪以及屏幕映射(图2.3),再次强调一下,根据实现的不同,这些功能阶段可能相当也可能不相当于管线阶段,有时几个连续的功能阶段可以合成一个管线阶段(与其它管线并行地运行),有时一个功能管线可能被分成几个更小的管线阶段。 在极端情况下,在整个渲染管线中的所有阶段可以以软翻译 2016-04-10 22:13:29 · 2621 阅读 · 0 评论 -
[实时渲染] 2.2 应用程序阶段
因为应用程序阶段在CPU上执行,所以开发者对要做的事情可以有全面的把控,因此开发者可以选择实现方案以及后续修改以提高性能,当然这里的修改也可能会影响到后续阶段的性能,例如,应用程序阶段的算法及设置可以减少需要渲染的三角面的数量。 在应用程序的最后,几何图元被提交给几何处理阶段进行渲染,这些可渲染的图元点,线以及三角形可能最终呈现在屏幕上,这是应用程序阶段最重要的一任务。翻译 2016-04-10 22:12:41 · 1164 阅读 · 0 评论 -
[实时渲染] 2.1 架构
在物理世界中,管线的概念以及不同的形式来证明自己,从工厂组装线到缆车,也被用在图形处理中。 管线包含了多个阶段[541],例如,在输油管道中,油料不能从第一个阶段到达第二阶段直到第二阶段中的石油已经移到第三阶段,等等。没意味管线的速度取决于最慢的阶段,不管其它阶段的速度多么地快。 理想情况下,非管线系统被分割成N管线阶段可以达到N倍的加速,增加性能提升是使用管线的主要原翻译 2016-04-10 22:11:52 · 1048 阅读 · 0 评论 -
[实时渲染] 3.2 可编程着色阶段
现代着色阶段(着色模型4.0,Vista上Directx 10以及更新版)使用通用着色器核心(common-shader core),这是说顶点,像素和几何着色器共享一个编程模型。本书中我们将来区分应用程序开发者可见的通用着色器核心和统一着色器,一种将所有都映射到相同该核心的GPU架构,见18.4节。通用着色器核心是一种API,统一着色器是一种GPU特性,早期的GPU的顶点和像素着色器含有极少的共翻译 2017-11-07 12:12:34 · 770 阅读 · 0 评论