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

原创 2015年11月18日 17:02:03

写在前面

  学习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使用经验的可能比较容易入手。


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

写在前面   学习unity shaderLab有一段时间了,总感觉要补一些基础知识才能更加深入,于是前一段时间又开始看计算机图形学方面的书,现在向女神乐乐看齐,写一篇备忘录,总结一下图形学各个术语...
  • qq_22348545
  • qq_22348545
  • 2015年11月18日 17:02
  • 309

着色器和效果——1.0 介绍高级着色语言

第一章       介绍高级着色语言阅读此文表明您已同意文末的声明概览在本章中,我们将描述高级顶点着色语言(High-Level Shading Language ,简称HLSL),我们用它编写以下三...
  • RaymondKing
  • RaymondKing
  • 2004年04月07日 14:34
  • 3833

图形学入门

转载自http://www.cppblog.com/lai3d/archive/2008/12/30/70796.htmltemp_span3D图形学的学习策略 感谢七星重剑 from http://...
  • Augusdi
  • Augusdi
  • 2013年10月10日 16:32
  • 8776

计算机网络的数据链路层的三个基本的问题

1.封装成帧     指的是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。 2.透明传输。     帧的开始和结束的标记是使用专门指明的控制字符。如开头用SOH,结尾用EOT。 3....
  • yt2054
  • yt2054
  • 2016年04月20日 17:00
  • 176

游戏开发完整学习路线(各个版本都有)

来自:微浪科技 作者:若朝若曦 在软件开发中,游戏开发这个方向看起来目标很明确,但其实是个领域很广的方向,入门的时候如果得不到指点一二,很容易误入歧途,相反,如果走这条路之前能得到前人的一些指路,...
  • of_cause
  • of_cause
  • 2017年04月26日 12:44
  • 1202

编写Unity3D着色器的三种方式

本文装载于:http://liweizhaolili.blog.163.com/blog/static/1623074420151595340733/ 过了2个星期,又来继续说着色器了。这两个星期...
  • a6627651
  • a6627651
  • 2016年01月19日 23:59
  • 2457

堆的一些基本问题

使用平台:vs2013基础概念部分堆:堆数据结构是一种数组对象,通过数组实现堆数据结构,可以看做是一颗完全二叉树结构。堆分为大堆和小堆大堆:每个父节点都大于子节点; 小堆:每个父节点都小于孩子节点。...
  • tongtong0528
  • tongtong0528
  • 2017年04月17日 19:13
  • 74

数据链路层的有那三个基本问题?为什么都必须加以解决?

数据链路层的有那三个基本问题?为什么都必须加以解决? 数据链路层的三个基本问题:封装成帧、透明传输、差错检测。 ⑴封装成帧就是在一段数据前后分别添加首部和尾部。接收端以便从收到的比特流中识别帧的开...
  • u011329762
  • u011329762
  • 2014年10月28日 07:43
  • 10027

计算机图形学基础知识-----渲染流水线

文章转载来源:http://www.cnblogs.com/suimeng/p/4655834.html 介绍了一些基本概念,图形学入门需要了解的shader、渲染流水线、可编程和不可编程区别、光栅...
  • johnnyconstantine
  • johnnyconstantine
  • 2016年04月08日 20:44
  • 3617

传统渲染管线与可编程Shader着色器

传统渲染管线与可编程Shader着色器   1.GUP的问世      上世纪的绝大多数显示加速芯片都不能称之为完整意义上的GPU,因为它们仅仅只有像素填充和纹理贴图的基本功能。而NVIDIA公司在1...
  • u011473031
  • u011473031
  • 2015年06月17日 15:27
  • 1175
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:计算机图形学的一些基本问题
举报原因:
原因补充:

(最多只允许输入30个字)