关闭

计算机图形学的一些基本问题

标签: 图形shadercg
225人阅读 评论(0) 收藏 举报
分类:

写在前面

  学习unity shaderLab有一段时间了,总感觉要补一些基础知识才能更加深入,于是前一段时间又开始看计算机图形学方面的书,现在向女神乐乐看齐,写一篇备忘录,总结一下图形学各个术语,理解一下一些基本问题。

什么是Shader

中文翻译为着色器,简单来说,shader就是专门用来渲染3D图形的一种技术,用过shader,程序开发人员可以进行GPU编程,自己编写显卡渲染画面的算法,使画面更漂亮、更逼真,要做出绚丽的游戏,掌握shader编程是必不可少的。shader一般分为两种,一种是顶点着色器(vertex shader),用来计算顶点位置,为后期渲染作准备。第二种的像素着色器(fragment shader),用来计算光照、颜色等一系列的算法,用来处理光栅化后生成的fragment。

渲染管线(Rendering Pipeline)


  也被称为渲染流水线,渲染管线的绘制流程是面试中经常会被问到的问题,下面是一张大概的流程顺序(摘自GPU Programming  And Cg Language Primer 1rd Edition)。粗略可分为应用程序阶段、几何阶段和光栅化阶段,应用程序阶段是程序员调用DirectX3D或者openGL时发生,主要的阶段是几何阶段和光栅化阶段。
几何阶段:主要负责大部分多边形和顶点操作,包括:模型和视点变换(object space到world space,world space 到 eye space)、光照和着色、投影、裁减、屏幕映射(每个图元的x和y坐标变换到了屏幕坐标系中,也就是eye space 到project and clip space),图元装配。完成这些步骤后,我们会得到一堆在屏幕坐标上的三角面片,这些面片是用于光栅化的,也就是下一个阶段。
光栅化: 主要负责给每个图元正确配色。

openGL和d3d是什么


这些就是应用程序接口(API),用于访问图形硬件中的可编程特性,初学者可从这些API开始下手,慢慢接触图形编程。openGL比DX最大的好处就是跨平台的特性,它不依赖硬件的接口。但是u3d中的坐标系和d3d相同,有u3d使用经验的可能比较容易入手。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1403次
    • 积分:75
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章分类
    文章存档
    最新评论