一、前言

OpenGl/DirectX是图像运用的编程接口,这些接口渲染二维三维图形。可以说这些接口架起了上层运用与CPU桥梁

HLSL:DirectX

GLSL:OpenGl

CG:正真跨平台

1、什么是DrawCall?

        CPU调用图像编程接口

2、CPU和GPU如何实现平行工作?

        使用命令缓冲区,DrawCall就是一种常见的命令缓冲区中的一种

        CPU发送命令,GPU读取命令

3、为什么DrawCall多了影响帧率

        CPU把大量的时间花费在提交DrawCall上,二Gpu的渲染数度是非常快的

4、如何减少DrowCall

         有很多方法  , 使用批处理:将很多小的DrawCall合并成一个,在CPU内存中合并静态物体

5、如何减少Draw开销?

           (1)避免使用大量很小的网格

            (2)避免过多的材质

二、概述

材质和shader

        UnityShader --shaderLab编写

1、shader名字(路径):Shader“Custom/Tast01”{}

2、属性(材质和UnityShader的桥梁,会出现在面板上):

        011 == Shader

3、SubShader(重量级成员):

        每一个UnityShader至少有一个Subshader:

011 == Shader


011 == Shader

4、后路:FallBack Off

整体结构:

011 == Shader


011 == Shader


011 == Shader


011 == Shader

011 == Shader

011 == Shader


三、shader所需的数学基础

1、笛卡尔坐标系二维

011 == Shader


011 == Shader

2、三维笛卡尔坐标系



011 == Shader

3、左手坐标系,右手坐标系

011 == Shader

4、使用左手右手坐标系判断旋转的方向,大拇指只想旋转轴的正方向

011 == Shader

5、unity使用的是左手拿坐标系

6、观察空间(摄像机坐标空间)

011 == Shader

7、使用左手判断叉乘的结果的方向

        四个手指指向第一个向量的方向,慢慢弯曲到第二个向量的方向的方向,拇指的方向就是结果向量的方向爱


四、坐标空间

011 == Shader

五、shader学习开始

011 == Shader

六、光照模型 - - 数学公式

011 == Shader

半兰伯特光造模型

011 == Shader

Blinn—Phong光照模型(无法实现菲涅尔反射)

011 == Shader

逐顶光照:高罗德着色

逐像素光照:



相关文章:

  • 2021-09-18
  • 2021-10-19
  • 2021-04-04
  • 2021-11-16
  • 2021-08-03
  • 2021-05-31
  • 2021-08-17
  • 2022-12-23
猜你喜欢
  • 2021-09-07
  • 2021-07-05
  • 2021-12-12
  • 2021-05-12
  • 2021-05-30
相关资源
相似解决方案