位置: 编程技术 - 正文

蛋哥的学习笔记之-基于Unity的Shader编程:0-2 基本3D图形渲染管线概述(蛋哥的日常)

编辑:rootadmin
一、要干些啥:今天主要概括和整理下基本的3D图形渲染管线,说白了就是让大家了解一下,我们是如何通过给定的一堆数据:视点(相机)、3D模型、光源、光照模型、纹理和渲染方式等,进行一系列计算,最终在屏幕上生成看起来有&#;真3D视觉体验的2D图形的。因为图形学相关的流程和算法非常繁多而且复杂(起码对于老衲这样的小白来说很复杂),所以本章只是概述性的介绍一下,如果你对此非常感兴趣,可以进一步阅读《计算机图形学》一书,并且参考图形学相关各种文章哈。 PS:今天写的都是一些理论性的东西,看起来会很枯燥,但是这些理论就像楼房的地基一样,如果不熟悉的话,将来就算能完成shader相关功能,那也一定非常低效。(曾经一位大牛对老衲意味深长的如是说 - -!) 二、3D渲染管线:(下面内容主要节选和概括自《GPU编程与CG语言之阳春白雪下里巴人》第页 第2章:GPU图形绘制管线) 我们可以将图形渲染管线划分为三个阶段:应用程序阶段、几何阶段、光栅阶段,如下图:(因为老衲的visio今天没装好,所以只好用书上英文的图,没办法自己画中文的,以后不会了哈,抱歉,嘻嘻~~~么么哒)

推荐整理分享蛋哥的学习笔记之-基于Unity的Shader编程:0-2 基本3D图形渲染管线概述(蛋哥的日常),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:蛋哥原名,蛋哥的日常,蛋哥的简介,蛋哥公众号,蛋哥评测,鸡蛋哥读后感受,蛋哥说蛋,蛋哥的日常,内容如对您有帮助,希望把文章链接给更多的朋友!

1、应用程序阶段:(上图中,中间橙色条以上的部分)

使用高级编程语言(如C/C&#;&#;、JAVA、C#等)进行开发,主要和CPU、内存打交道,进行比如碰撞检测。场景建立、场景管理、视锥裁剪等算法的处理;

2、几何阶段:(上图中,橙色部分)

主要负责顶点坐标变换、光照、裁剪、投影以及屏幕映射计算,该阶段是基于GPU运算,最终会得到变换和投影后的顶点坐标、颜色和纹理坐标;蛋哥的学习笔记之-基于Unity的Shader编程:0-2 基本3D图形渲染管线概述(蛋哥的日常)

a、物体坐标系(object coordinates)正如其名,该坐标系中定义了模型独立的各顶点信息,它与大场景中的其它模型没有任何参照关系,比如在MAX或者MAYA里编辑模型一样。^@^b、世界坐标系(world coordinates)世界坐标系中会定义一个统一的原点,和各坐标分量(x、y、z轴),然后将各模型通过平移,旋转、缩放变换到世界坐标系中,比如在unity编辑器中编辑场景。光照通常会在世界坐标系中计算,当然也可以再视景坐标系中运算。(其实老衲一直觉得既然使用的是局部光照,在视景坐标系下效率肯定高很多啊,但是书上是这么写的,有待讨论,不过如果是全局光照的话,肯定要放在世界坐标系运算的)c、视景坐标系(eye coordinates)所谓视景坐标系,就是以摄像机为坐标原点,由摄像机方向,视角和远近平面所构成的一个梯形体的三围空间,来确定摄像机能“看”到哪些模型,需要剔除哪些模型的渲染来提高性能(剔除的过程称之为裁剪,详细的裁剪算法可以进一步阅读《计算机图形学》或者《3d游戏编程大师技巧》一书)。d、屏幕坐标系(project and clip coordinates)所有变化和裁剪后的模型,最终会经过透视投影,最终运算出屏幕分辨率大小的2D图形。(详细的透视投影算法可以进一步阅读《计算机图形学》或者《3D游戏编程大师技巧》一书)3、光栅阶段:(上图中,橙色以下部分)光栅化阶段主要进行决定哪些像素被集合图元覆盖的过程,其运算可以概括为两个步奏:a、确定形状和绘制范围:首先我们经过各种变换和运算所得到的点坐标都是浮点数,而屏幕坐标都是整数,我们只能选取最接近的点;其次,根据2个点我们需要绘制直线,通常直线通过DDA算法、Bresenham算法来实现;(详细的算法可以进一步阅读《计算机图形学》或者《3D游戏编程大师技巧》一书)最后,绘制区域图元的算法通常有扫描线多边形填充算法、边界填充算法等。(详细的算法可以进一步阅读《计算机图形学》或者《3D游戏编程大师技巧》一书)b、Pixel Operation在更新帧缓存之前,执行最后一些列针对每个片段的操作,其目的是计算出每个像素的颜色:

1:消除这当面;

2:纹理操作,也就是根据像素的纹理坐标,查询对应的纹理&#;;

3:Blending:混色,也就是根据已画好的颜色,进行Alpha混合,通常用作透明处理;

4:Filtering:对最后处理的颜色使用某种滤镜后输出,即使用一系列数学运算,生成新的颜色。

Unity 网络通信(一)Unity Network 初步 翻了半天unity的API,也没有发现可以处理Socket的方法。Unity自己封了个网络处理的类Network,主要用于状态同步。乎是要实现MMO级别的网络应用,只能用C#

Unity3D优化之合并网格 整理 一、使用gameobject的static属性设置注意的是,所谓静态就是静止的,你如果要改变它位置,就不是静态了,静态物体在脚本加载的时候就开始渲染,不随

Unity3D选择性渲染技术 话说大学毕业快一年了,加上在学校参加比赛做的一些游戏。实际上编程时间也有三年了。以前碰到问题总是到网上搜索答案。有时能很快的找到,有

标签: 蛋哥的日常

本文链接地址:https://www.jiuchutong.com/biancheng/383564.html 转载请保留说明!

上一篇:蛋哥的学习笔记之-基于Unity的Shader编程:0-1 开篇计划+发泄一堆废话(蛋哥的日常)

下一篇:Unity 网络通信(一)Unity Network 初步(unity网络通信框架)

  • 已缴纳车船税的车船在同一年度
  • 增值税以物易物税收政策
  • 个体户需要给员工交保险吗
  • 制造业的加工费可以放制造费用的二级科目加工费吗
  • 应税项目和非应税项目起征点一样吗
  • 经营性应付项目增加导致现金流量
  • 注册公司认缴出资方式怎么选
  • 以前年度费用调减
  • 小规模纳税人开具增值税专用发票
  • 虚开增值税普通发票罪的立案标准
  • 本年本期累计
  • 道路占用挖掘费要交印花税吗
  • 一般纳税人增值税可以抵扣吗
  • 股票回购后多久注销
  • 法人代表领工资怎么领
  • 注册资金印花税是资金账簿吗
  • 航空运输的湿租业务按什么缴纳增值税
  • 少数股东损益借方增加还是贷方增加
  • 固定资产捐赠的增值税
  • 简单内帐利润报表一目了然
  • 可以背书转让的公司
  • 到期一次还本付息的利息怎么算
  • 土地使用税计税依据及计算方式
  • 来料加工的账务处理
  • 财务费用年末有余额吗
  • 电梯销售和安装怎么核算收入
  • 华为手机hms提醒
  • linux怎么翻译
  • mac双系统切换键
  • 使用linux命令
  • windows10一直刷屏
  • 投影仪哪种光源亮度高
  • 国有企业正常60岁退休到什么鉴字
  • tp6 分页
  • 参加《2022 中国开发者影响力盛典》我的 4 重收获!
  • 接口多继承的写法
  • vue-router + element-plus实现面包屑导航栏和路由标签栏
  • 公司开的餐费专票可以抵扣吗
  • 分公司以总公司名义
  • 递延收益期限
  • mysql5.7压缩包安装配置教程
  • 季初资产总额和季末资产总额怎么算
  • 企业的净利润率
  • 固定资产折旧的账务处理
  • 费用多报销了,但已经给了,怎么办
  • 借递延所得税资产贷递延所得税费用
  • 长期待摊费用待摊费用
  • 开票加的税点走什么费用
  • 固定资产折旧度怎么计算
  • 母公司及子公司增资
  • 建筑公司异地施工
  • 坏账准备怎么计提比例
  • 全资子公司合并报表编制
  • sql解析原理
  • mysql replace正则表达式
  • mysql使用技巧
  • sql语句的子查询
  • sql如何随机抽样
  • mac安装pyenv
  • fedora linux安装教程
  • 在u盘安装软件插上就能用
  • 标签windows
  • win8资源管理器在哪
  • win8摄像头设置
  • wind10怎么打开摄像头
  • win7 64位系统无法清空回收站的故障原因及解决方法
  • mac新版系统
  • WIN10系统中引导修复不工作
  • 移动硬盘做win7系统盘
  • 一起回顾一下本周我们的读书生活
  • win8.1安装程序无法确定支持的安装选项
  • z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)
  • linux awk命令使用实例
  • css图片样式网站
  • lru缓存机制是什么
  • 右键打开方式里没有word
  • Clipboard.js 无需Flash的JavaScript复制粘贴库
  • unity ngui
  • 甘肃增值税发票查验平台官网
  • 国税局和税务局哪个级别高
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设