百人计划图形1.1学习笔记
基于对庄懂大佬技术美术入门课(美术向)的学习后,开始转向may佬的百人计划进行学习,学习中对庄懂大佬课程中所学的东西进行巩固,并开始进行作品集的准备,希望能在秋招中找到相关的工作。(本人网络工程专业,自6月中旬才开始学习TA相关内容,引擎目前就只学习了unity,希望自己能赶在秋招结束前学习到一定水平找到心仪的工作)
整体流程

应用阶段一般在CPU中完成,例如:从内存上读取模型数据或贴图


1.1基本场景数据
·场景物体数据:位置、旋转、缩放等
·物体网格数据:顶点位置、UV贴图等

光源信息:
·光源类型:方向光、点光、聚光等
·位置、方向、角度等其他参数

摄像机参数:
·位置、方向、远近裁剪平面
·正交/透视(FOV)
·视口比例/尺寸等


以shader forge展示相关内容(代码不太好截图,懒)


八叉树应该和数据结构中的树杈差不多?



2.几何阶段

cvv:顶点是否处于视椎体内,不在就剔除。
2.1顶点着色器-视图变换

mvp矩阵,unity自行完成
2.2曲面细分

几何着色器(基于图元的操作)——可选步骤

根据给定图元生成更多图元,例如上图三角形生成三角形
2.3投影
将生成的物品投影在屏幕中

物体世界坐标中的xyz/w进行投影,w=1为正交。
2.4裁剪

设备坐标系在OpenGL和D3D中有所区别
OpenGL中xyz3个维度由-1到1;D3D中xy维度由-1到1,z维度由0到1
2.5屏幕映射

将xy维度坐标映射在屏幕坐标上,屏幕坐标以屏幕大小为主
OpenGL中起始原点为左下方,d3d为屏幕左上方

三角形设置

得到相关信息后,对三角形像素进行遍历




4.1片元着色

庄懂大佬的课程中似乎有演示过?记不清了





