US2——Shader必备基础
US2——Shader必备基础 如何学习Shader开发 学习Shader开发,主要要学习:数学相关知识、语法相关知识、着色器开发相关知识 等 学习了这些知识后,我们就能按照需求去处理渲染数据,最终才能在屏幕上显示出符合需求的图像效果 本系列主要涉及: 数学基础(Mathf,三角函数,坐标系,向量) 详见 Unity基础——3D数学 所有知识点 线性代数及坐标空间变换 ShaderLab语法 CG语法
US1L8——其他相关必备概念
US1L8——其他相关必备概念 知识回顾 在游戏开发时,针对不同的平台(操作系统)可能会使用不同的图形接口程序 其中较常用的几种图形接口程序为: OpenGL/Vulkan(跨平台,几乎所有平台都能使用) DX(针对微软相关平台,微软的Windows) Metal(针对苹果相关平台,苹果的Mac OS ) Web...
US1L7——必备的图形程序接口概念
US1L7——必备的图形程序接口概念 计算机图形程序接口 计算机图形程序接口(Graphics API)对于游戏开发程序员来说是非常重要的知识,是学习图形学时必不可少的内容。 计算机图形程序接口是一套可编程的开放标准,不管做2D还是3D游戏都需要这部分的底层API支持。 它本质上是软件,并不是硬件,是前辈们提前为你写好的调用系统硬件(GPU)绘制图形的代码。 我们甚至可以把它简单理解成是显卡厂商定义的一系列的底层的进行图形操作的加速API接口。 由于目前各种游戏引擎的出现,即使你没有系统的学习过图形学相关知识,也能够独立的通过游戏引擎开发游戏。 但是你必须知道的是,游戏引擎的一部分本质就是对图形程序接口的封装, 游戏引擎通过图形程序接口帮助我们完成了图像渲染相关的工作,我们只需要把工作重心放在游戏逻辑开发上了。 因此,计算机图形程序接口对于游戏开发来说,是非常重要的内容, 即使你现在还没有时间,或者没有需求学习计算机图形学,你也必须对他们有一定的认识。 Unity程序员必了解的图形程序接口 OpenGL(Open Graphics...
US1L6——如何进行Shader开发
US1L6——如何进行Shader开发 如何学习Shader开发 学习Shader开发,主要要学习:数学相关知识、语法相关知识、着色器开发相关知识 等 学习了这些知识后,我们就能按照需求去处理渲染数据 最终才能在屏幕上显示出符合需求的图像效果 学习Shader开发,我们必须要学习的基本知识有 数学相关知识 在渲染管线的几何阶段,我们最主要要处理的核心工作之一就是坐标转换 我们要了解坐标转换的原理,就需要学习数学相关的知识,主要包含的内容有: 向量相关知识 线性代数相关知识(学习矩阵计算相关知识) 在 顶点着色器 中,我们就需要利用这些知识完成坐标转换等相关的工作 语法相关知识 我们已经知道我们需要在渲染管线的 几何阶段 中的 顶点着色器 和 光栅化阶段 中的 片元着色器 两个小阶段 自定义处理数据来达到各种不同的表现效果 而想要实现自定义逻辑处理,我们就需要学习着色器开发的特定语言 在Unity当中的Shader开发,我们需要学习 Unity中的 ShaderLab 语法 着色开发的...
US1L5——何为Shader开发
US1L5——何为Shader开发 Shader Shader 的中文意思是 **着色器**,它是一种用于描述如何渲染图形和计算图形外观的程序 主要用于控制图形的颜色、光照、纹理和其他视觉效果 着色器通常由着色器语言编写,这些着色器语言提供了指令和语法 用于编写描述光照、纹理映射、阴影、反射等图形外观的代码 说人话:Shader 就是 着色器,是用于编写图形表现效果的程序代码 Shader 和 渲染管线 的关系 我们之所以在本套课程中一开始就讲解渲染管线的相关知识点,就是因为Shader和渲染管线的关系是密不可分的 渲染管线(流水线)的基本概念是将数据分阶段的变为屏幕图像的过程, 而Shader开发就是针对其中某些阶段的自定义开发,从而决定图形图像最终呈现到屏幕上的表现效果 在Unity中,我们学习的Shader开发主要针对渲染管线中的两个小阶段的 几何阶段 —— 顶点着色器 小阶段 光栅化阶段 —— 片元着色器...
US1L4——渲染管线-光栅化阶段
US1L4——渲染管线-光栅化阶段 知识必备——像素 像素是计算机图形学中的基本概念,它是组成图像的最小可控单位,具有位置和属性,用于表示图像中的颜色和其他信息 它是二位图像中的一个点,每个像素都占据屏幕上的一个固定位置 比如我们常见的显示器分辨率为:1920 x 1080,就表示宽度为1920个像素,高度为1080个像素 知识必备——片元 在渲染管线中,片元是指在光栅化阶段生成的像素或像素片段 片元是渲染管线中进行像素级别操作和计算的基本单位 每个片元代表了屏幕上的一个像素,并且具有位置信息和与之相关的属性,比如:颜色、深度值、法线等等 简单来说,片元相比像素包含了更多的消息,比如:颜色、深度值、法线等等 渲染管线 的 光栅化阶段 渲染管线(流水线)中的光栅化,主要是GPU主导的阶段 它为渲染完成的最主要的工作就是 确定片元最终是否被渲染,并且确定片元的最终渲染颜色效果等 在光栅化阶段中,我们主要通过自定义 片元着色器 **** ...
US1L3——渲染管线-几何阶段
US1L3——渲染管线-几何阶段 知识必备——图元 图元:在渲染管线中,图元是指几何数据的基本单元,它是构成几何体的最小可绘制的单元 图元可以是点、线、三角形,在渲染管线的几何阶段,顶点数据会被组合为图元 这些图元将在后续的光栅化阶段转换为像素,最终呈现在屏幕上 渲染管线的几何阶段 渲染管线(流水线)中的几何阶段,主要是GPU主导的阶段 它为渲染完成的最主要的工作就是 顶点处理,坐标转换,裁剪画面外图元等等 在几何阶段中,我们主要通过自定义 顶点着色器 阶段,为我们带来一些不同的画面表现效果 渲染管线的几何阶段主要由GPU主导,因此我们无法拥有绝对的控制权,但是GPU为我们开放了部分控制权 几何阶段主要做的事情是,根据应用阶段输入的数据信息,进行顶点坐标转换,以及裁剪不可见图元等工作 顶点着色器 它处理来自应用阶段由CPU传递过来的顶点相关数据,输入进来的每一个顶点都会调用一次顶点着色器中的逻辑 顶点着色器需要完成的工作主要有: 坐标变换 —— 顶点变换、法线变换、纹理坐标变换等 顶点属性处理 ——...
US1L2——渲染管线-应用阶段
US1L2——渲染管线-应用阶段 知识必备——CPU和GPU CPU:中央处理器,负责算数运算、逻辑操作、数据传输等通用计算任务,同时还管理和调度计算机的资源 (在游戏开发中—CPU就主要负责游戏逻辑处理,如角色移动,动画切换,寻路等等) GPU:图形处理器,是专门用于图形和并行计算的处理器 显卡就是搭载GPU的硬件设备,显卡包含一个或多个GPU芯片, 还包含显存(用于存储图像数据)、显示接口、视频解码器等等 (在游戏开发中—GPU负责将画面渲染相关处理) 简单来说:CPU主要处理操作系统管理、程序执行、通用计算等等,而GPU主要处理图形渲染、图像处理等等 渲染管线的应用阶段 渲染管线的应用阶段中大部分的内容都和渲染无关(比如:游戏逻辑处理、动画更新、物理模拟、场景管理等等) 当应用阶段完成后,后面的几何阶段以及光栅化阶段将开始处理和图形渲染相关的数据和操作。 那么应用阶段为什么会归纳到渲染管线中呢? 那是因为应用阶段为渲染管线的后续提供了最重要的内容 ——...
US1——Shader必备概念
US1——Shader必备概念 Unity渲染管线学习前提 Unity中的渲染管线和图形学中的渲染管线基本上指的是相同的概念,但是具体实现和细节方面可能存在一些差异 Unity的渲染管线建立在图形学的基础上,但是它具有自己的实现和拓展 提供了一个高度可配置和可拓展的框架,允许开发者根据需求自定义渲染流程 我们之后讲解的渲染管线相关知识主要针对Unity中的实现 Shader 必备概念 本系列学习内容 渲染管线概述(将三维场景数据转换为屏幕图像的过程) 渲染管线——应用阶段(为后两个阶段提供渲染所需要的数据;重要内容:Drawcall的优化) 渲染管线——几何阶段(将应用阶段提供的顶点数据进行屏幕坐标转换;重要内容:顶点着色器) 渲染管线——光栅化阶段(确定片元(像素)是否渲染,确定片元最终渲染颜色等等;重要内容:片元着色器) 何为Shader开发(针对渲染管线的 几何阶段-顶点着色器 和 光栅化阶段-片元着色器...