【图形学】图形管道

  多数渲染系统有极大的共性,图形管道伪代码可以说明带有光照的单个图象的渲染过程,这样会对渲染过程有一个整体认识。

图形管道伪代码  

 1 //设置场景:渲染的出发点——视点,输出——视图,设置光照和雾化
 2 //设置观察场景的方式——摄像机
 3 setupTheCamera();
 4 //清除深度缓冲
 5 clearZBuffer();
 6 //设置光源和雾化
 7 setGlobalLightingAndFog();
 8 //得到可见物体列表
 9 visibleObjList = visibleDetermination(scene);
10 //开始渲染
11 for (obj in visibleObjList) {
12     //使用包围体执行VSD检测
13     if (!obj.isBoundingVisible()) continue;
14     trimesh = obj.getGeometry();
15     for (triangle in trimesh){
16         //变换顶点到裁剪空间,执行顶点级别光照
17         clipSpaceTriangle = transformAndLighting(triangle);
18         //背面剔除
19         if (clipSpaceTriangle.isBackFacing()) continue;
20         //视锥体裁剪
21         clippedTriangle = clipToViewVolume(clipSpaceTriangle);
22         if (clippedTriangle.isEmpty()) continue;
23         //三角形投影至屏幕坐标,并且光栅化
24         clippedTriangle.projectToScreenSpace();
25         for (pixel in triangle) {
26             //插值颜色,z-Buffer和纹理纹理映射坐标
27             //执行z-Buffer和alpha检测
28             if (!zbufferTest()) continue;
29             if (!alphaTest()) continue;
30             //像素着色
31             color = shadePixel();
32             //写内容到帧缓冲区
33             writePixel(color, interpolatedZ);
34         }
35     }
36 }

【图形学】图形管道

时间: 2024-12-17 21:26:01

【图形学】图形管道的相关文章

图形学复习1——图形学图形系统概述与对象表示

图形学复习 CH1 图形学概述 1.1 图形学 计算机图形学是研究图形的输入.模型的构造和表示.图形数据库管理.图形的操作以及以图形为媒介的人机交互的方法和应用的一门综合性学科 其最主要的任务是:研究如何用数据模型生成数字图像,具体来说有以下几个方面: 图形建模 几何处理 光栅化 片元处理 等等 计算机图形一般有两种表示方法: 图像:枚举图形中所有的点构成的2维点阵 图形:用图形的形状参数(参数方程.端点坐标等)和属性参数(颜色.线形等)来表示的参数模型 图形学中主要用后者表示计算机图形 CH2

深入了解Android图形管道-part2

深入了解Android Graphics Pipeline-part-2 > * 原文链接 : Android Graphics Pipeline: From Button to Framebuffer (Part 2) * 作者 : Mathias Garbe * 译者 : chaossss * 校对者: Mr.Simple * 状态 : 完成 在上一篇博文中,我们图文结合介绍了 Android 怎么把 onDraw() 方法的 Java 代码转换为 Native 层的 C/C++ 代码.而今

计算机图形学——图形和图像

一.图形和图像的区别 在不同的背景下具有不同的含义.简单来说,计算机图形是计算机产生的图形(像). 一种说法:图形是有计算机绘制而成的,而图像则是人为的用外部设备所捕捉到的外部景象 另外一种说法:图形是矢量图,而图像是位图(点阵图) 二.图形(像)的构成属性 从广义的概念,一般分为几何属性和非几何属性 (1)几何属性:刻画对象的轮廓.形状.也称几何要素.包括点.线.面.体. (2)非几何属性:视觉属性,刻画对象的颜色.材质等.比如明暗.色彩.纹理.透明性.线型.线宽. 从构图要素上分为两类: 三

解读Unity中的CG编写Shader系列五??理论知识

转自 http://www.itnose.net/detail/6098474.html 经过前面的系列文章中的三个例子,尽管代码简单,但是我想应该还有些地方没有100%弄明白,我们现在得回过头来补充一些必备的数学.图形学知识 1.图形管道 第一个例子中我有提到顶点着色和片段着色在整个图形绘制过程中属于一个环节,整个过程叫做管道,这个管道的所有环节包括: 在整个管道中,只有顶点着色与片段着色是可编程的,顶点数据和帧缓存是具体的数据,剩下的环节是固定功能的环节,即不能用cg去编程的环节. 2.数据

解读Unity中的CG编写Shader系列五——理论知识

经过前面的系列文章中的三个例子,尽管代码简单,但是我想应该还有些地方没有100%弄明白,我们现在得回过头来补充一些必备的数学.图形学知识 1.图形管道 第一个例子中我有提到顶点着色和片段着色在整个图形绘制过程中属于一个环节,整个过程叫做管道,这个管道的所有环节包括: 在整个管道中,只有顶点着色与片段着色是可编程的,顶点数据和帧缓存是具体的数据,剩下的环节是固定功能的环节,即不能用cg去编程的环节. 2.数据流 3.语义.特殊参数(uniform) 前文已经大量接触到语义,语义的存在意义可以理解为

Rotate Image

参照计算机图形学图形变换即可. public class Solution { public void rotate(int[][] matrix) { if(matrix.length<=1)return ; float dip=(float) ((matrix.length-1)/2.0); int[][] res=new int[matrix.length][matrix.length]; for(int i=0;i<matrix.length;i++) for(int j=0;j<

Mali GPU OpenGL ES 应用性能优化--基本方法

1. 常用优化工具 2. 常用优化方案 OpenGL ES优化的主要工作是在图形管道中找到影响性能的bottleneck,其bottleneck一般表现在以下几方面: ? 在应用程序代码中,如冲突检测     ? GPU与主内存间的数据传输     ? 在VP(Vertex Processor)中的顶点处理     ? 在FP(Fragment Processor)中的片断处理 可通过DS-5 Streamline来定位性能瓶颈(Locate bottleneck).为了获取更好的性能,可从以下

4月18日

今天去金山帮爸爸领三证合一营业执照.带着书路上想看,结果睡了一路,脖子差点睡断了. 在路上看了四节JS课程,回来看了十几页书.难度逐渐增大了,需要多加练习. 今天的论文比较简单,涉及的技术细节较少.不过还是给了我很多信心. Demo: XML3D – Interactive 3D Graphics for the Web 主要展示了3个XML3D的demo,反复论证XML3D和当下技术兼容性多么好,多么容易开发 XML3D旨在融入和影响W3C标准,普及交互式3D,作为W3C Declarativ

Chapter 1 : OpenGLES 3.0 简介 (1)—— OpenGL ES 简介

OpenGL ES (OpenGL for Embedded Systems 的缩写)是一套在手持设备和嵌入式设备上实现高级3D图形化的应用变成接口(API).OpenGL ES作为图形API在当今的智能机领域占据了主导地位,并且已经将其应用扩展到了台式机.支持OpenGL ES的平台包括iOS.Android.BlackBerry.bada.Linux和Windows.OpenGL ES也支持WebGL——一种实现基于浏览器3D图形化的web标准. 2009年六月,苹果发布了iPhone 3G