ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【游戏开发基础知识】渲染篇

2022-08-14 20:00:55  阅读:183  来源: 互联网

标签:贴图 法线 颜色 游戏 裁切 渲染 模型 Shader 基础知识


什么是渲染管线?如何绘制3D物体?

https://www.bilibili.com/video/BV1qY4y1V79z/?spm_id_from=333.788&vd_source=61ce3b4e97cb6ce7f80ca3f58607b5fb

1、前期CPU需要为GPU准备的东西

比如一个正方体的3D模型,都是点组成 Vertex Buffer(顶点缓存)

Index Buffer,根据点的下标绘制三角形

摄像机的数据:位置,方向,FOV,

摄像机不能看的无限远和非常近:近平面(NearClipPlane),远平面(FarClipPlane)裁切、被裁切下来的地方:视锥(Frustum)

灯光数据:方向、颜色、强度等参数

材质球:Shader

准备好数据后交给GPU

2、GPU处理

顶点处理、顶点着色器 :把顶点装换到我们的裁切空间(Clip Space);将模型的顶点变换到世界空间(World Space)、摄像机空间(View Space)、裁切空间(Clip Space)

连接三角形,把三角形投影到我们的屏幕上

光栅化:把三角形变成屏幕上对应的像素,遍历完所有的像素后

像素着色器:可以根据灯光做出明暗变化的效果、根据贴图坐标采样贴图

后处理

什么是Shader

Shader是一堆代码,决定计算机如何渲染我们的模型,跟所有的编译型语言一样,都是要先编译成一个二进制的文件,才能被计算机使用

Shader的语言统称着色器语言(ShaderLanguage)

两种风格:PBR基于物理的渲染、ToonShading风格化渲染

法线贴图Normal Map

概念

笔记:法线的本质是xyz三轴向量,只是为了可读性,借用了RGB的外皮。相较于静态贴图,法线贴图的优势在于可以与光影产生互动。通过法线贴图,相当于把一个复杂模型平面化了,用贴图替换模型演算,减少计算量。

对颜色做一个简单的映射,坐标轴中X * 0.5 + 0.5就可以表示颜色的RGB了

把法线信息变成颜色,然后把模型凸起的部分给弄回去,这时候模型的法线都是全部朝上的效果,但是我们这个时候不用模型表面的朝向了,而是用模型表面的颜色来跟灯光进行计算,颜色的三个通道,刚好能表示xyz,所以也能表示模型表面的朝向,即使我们现在的模型是一个平面,但是还是能有光影效果,并且随着灯光的转动,也会有一定的立体感

tip:透视效果就需要置换贴图了

法线贴图的存放

把法线朝向的信息变成颜色,想办法变成一张贴图,把这些原始的信息映射到0~1,而这个贴图也就是法线贴图

法线贴图根据API有所不同:G也就是绿通道是相反的,OpenG跟DirectX它们期望的第一个像素有所不同

其实我们真正看到的法线贴图的颜色,饱和度会更高一点,这是因为色彩空间的关系

标签:贴图,法线,颜色,游戏,裁切,渲染,模型,Shader,基础知识
来源: https://www.cnblogs.com/hellogiao1/p/16586164.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有