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

本文旨在总结Unity ShaderLab的学习心得及计算机图形学基础概念,包括Shader的作用、渲染管线流程、OpenGL与DirectX的区别等,旨在帮助开发者深入理解图形渲染原理与实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值