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