| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> 尝试搭建webgl游戏引擎-渲染管线 -> 正文阅读 |
|
[游戏开发]尝试搭建webgl游戏引擎-渲染管线 |
上一篇为:尝试搭建webgl游戏引擎-场景管理 本篇记录一下渲染管线的学习webgl的渲染管线,学起来还是很痛苦的。 我所理解的渲染管线我理解渲染管线就是CPU将数据准备好,然后通知一声GPU: 关键点就是这一系列处理 首先是空间的变换要将一个虚拟的点,最终映射到屏幕上的一个像素。 1. 局部模型空间到世界空间一个点,一般是附属于一个模型的。 但是在整个webgl里,是把所有顶点都当成了自己的儿子。 所以我们需要经过一个变换transform,来将这些孙子点,都升级成儿子点。 2. 世界空间到摄像机空间(视图空间)好了,现在所有儿子都已经排排站站好了。 这个摄像师为了找到一个好背景,不断的搬自己的工具到想要的位置。 比如摄像机的世界坐标是(1,2,-3) 3. 视图空间到投影空间(裁剪空间)ok。摄像师终于找好了一个绝佳的位置。 从视图空间到裁剪空间,需要通过一个投影变换。 正交投影的矩阵比较简单,保留x,y,对z进行换算(主要用来做深度检测) 4. 裁剪空间到NDC这一步是比较难理解的。NDC是标准设备坐标。 5. NDC到屏幕空间然后就到了最后的显示了。 小结所以空间变换的顺序就是: 其它管线节点渲染管线不仅仅是这些空间变换就能完全代表的。 顶点着色就是处理模型到裁剪的变换。可以添加颜色,法线等顶点属性变换。 图元装配这个非常重要,需要CPU告诉GPU用什么样的方式组织这些零散的顶点。 裁剪在进行图元装配和,才进行裁剪。将外面的图元裁剪掉。 光栅化进行了图元裁剪后,所有可以显示的图元数据就有了。 片元着色等到光栅化完毕后,就形成了非常多的片元(像素) 模板测试等到片元着色完事后,就可以进行模板测试了。 深度测试等到模板测试后,就可以深度测试了。 小结想要将一个图形最终变到屏幕上,真是要费很大的周章。 顶点着色器和片元着色器可编程渲染管线的重点就是可以自定义书写顶点着色器和片元着色器。 结语要学的东西有很多。 文章写的很不好,不过会越来越好的。 希望自己有找一日找到自己的财富密码。 下一篇写简单的点击事件。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 11:01:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |