图形学基础知识

简介:

本篇主要给大家介绍图形学基础知识,了解Unity图像渲染机制,以及图像渲染管线流程。

主要是因为伴随着VR/AR的飞速发展,为了满足VR高清高帧率的极限渲染,着色器编程(Shader)也成为了Unity程序开发人员的必备知识。

首先,给大家介绍一下Unity图像渲染机制
在Unity引擎中,任何图像渲染都需要一个很重要的文件属性——Material(材质球),在MeshRenderer、LineRenderer、UI渲染、拖尾渲染都可以见到它的影子。因此,我们可以将Material理解为Unity中图像渲染的工具,而Shader(着色器)即可以理解为Material这个工具的加工厂,Shader(加工厂)定义了Material渲染的解决方案,定义了Material渲染所需要的原材料,而此时所讲的原材料,即Shader中的属性(数值,颜色,纹理,贴图等等)。

wKiom1neK2KCGnOiAACqXHFx3VM824.png-wh_50

渲染绘图管线
了解了Unity图像渲染机制,下面我来介绍渲染绘图管线。那么何为渲染绘图管线呢?渲染管线也称为渲染流水线,是显示芯片内部处理图形信号相互独立的并行处理单元。在Unity中,即将3D场景模型绘制成屏幕2D图片的过程。

wKioL1ndvFTzP_MpAADtkCt3kCU652.png-wh_50

下面我们详细讲解图像渲染流水线中各个模块的详细操作步骤:

第一个步骤——顶点处理
1.
当模型制作完成后,模型只有一个自身中心以及自身的前后左右上下方位,我们称之为本地坐标系。当模型置入3D场景中,每个顶点都拥有了一个世界坐标,因此顶点处理第一步是从本地坐标到世坐标的过程。2.有了世界坐标后,模型在不同角度观察,所看到的画面是不同的,因此下一个步骤是从世界坐标系到观察坐标系的过程。3.观察坐标系还是一个3D视角,但我们所看到的画面其实是一个2D的平面,只是有了阴影,有了光照,有了3D模型的角度渲染,我们看起来比较又3D点感觉。最后一个步骤,即观察坐标系(3D)到投影坐标系(2D)到过程。

第二个步骤——面处理
1.刚刚操作已经获取到了2D平面上每个顶点的坐标,下面面处理第一个步骤即将所有顶点连线,组装成面。

2.当然面组装成型后,会有我们看不到的地方不需要渲染,因此要将看得到的面截取,将看不到的面剔除,因此有了面截取和面剔除步骤。

第三个步骤——光栅化
光栅化是渲染管线流程中重要的一步,即将面渲染所需要的像素数量,位置等信息计算出来,也可以理解为是将面拆分成一个个的像素的过程。

第四个个步骤——像素处理(像素着色)
最后一步,即给每个像素着色,形成我们想要看到的画面。



本文转自 宁金峰 51CTO博客,原文链接:http://blog.51cto.com/13243523/1971434,如需转载请自行联系原作者

相关文章
|
监控 数据可视化 安全
Linux——怎样使用SSH服务实现远程UI界面本地显示
需求场景 最近几天需要实现软件的远程监控,但是实际场景又不能使用向日葵、VNC、AnyDesk、以及其他的监视软件,并且软件的整体设计也没有这块的数据上行设计。
462 0
|
监控 NoSQL Redis
一探Redis究竟:超火爆入门指南,你竟然还没看?
Redis是由C语言编写的开源、基于内存、支持多种数据结构、高性能的Key-Value数据库。
253 2
一探Redis究竟:超火爆入门指南,你竟然还没看?
|
缓存 Linux 开发者
CentOS Linux 8 - AppStream 错误
CentOS Linux 8 - AppStream 错误
252 1
|
搜索推荐 前端开发 Linux
第二代软件开发
欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。 在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。 在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资
|
移动开发 IDE 物联网
HaaS100按键及LED使用介绍
HaaS100有2个按键及6个LED
HaaS100按键及LED使用介绍
|
存储 弹性计算 网络协议
NAS支持IPv6访问的使用指南
阿里云文件存储(Network Attached Storage,简称 NAS) 提供VPC内的Ipv4和Ipv6的双栈访问,助力企业平滑升级到Ipv6架构。
8664 0
|
SQL Java 关系型数据库
Hive配置与操作实践
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1010885678/article/details/50580995 Hive配置与操作实践 @(Hadoop) 安装hive hive的安装十分简单,只需要在一台服务器上部署即可。
1518 0
|
JSON 数据格式 Web App开发
记录HttpWebRequest辅助类
最近因为工作关系,需要通过HttpWebRequest去请求API,所有就写了个简单的辅助public sealed class HttpRequestHelper { private static string USER_AGENT = "Mozilla/5.
877 0
|
5天前
|
存储 人工智能 调度
阿里云吴结生:高性能计算持续创新,响应数据+AI时代的多元化负载需求
在数字化转型的大潮中,每家公司都在积极探索如何利用数据驱动业务增长,而AI技术的快速发展更是加速了这一进程。