本帖最后由 DeathWolf96 于 2016-6-25 23:18 编辑
概述
在Minecraft中,对通常的实体渲染的光照处理是十分简单的。在同一方块位置的实体通常都计算为同一亮度,无法体现出场景光照的层次感和模型的立体感。本文利用OpenGL 3.3+和GLSL,实现了一种效果较好的逐片元平滑光照方法,同时还支持配合顶点法线/法线贴图的光照运算。
由于对Minecraft自身简陋的渲染系统在的渲染效果和效率的不满,我最近一直在研究如何利用Modern GL(可编程渲染管线,GL33+,GLSL)来提高Mod渲染部分的表现力。这篇文章就是这一系列尝试中一个比较重要的结果。
用文中所述的方法可以实现比较真实的平滑光照效果,甚至还可以支持法线贴图哦 :P 当然,这个方法也存在着一定的局限性(主要是效率上的),而且对于如何提供一个优雅的抽象层个人还暂时没有什么头绪。还希望可以和大家多多讨论~
注意:阅读这篇文章前,建议有一些图形学、矢量数学的相关知识,以及对OpenGL的基本了解。如果没有,可以选择狗带可以到这个网站逛一逛。
查看全文
小小的打个广告:欢迎关注联动项目Pipeline(在MC里提供一套完整的Modern GL的渲染管线实现)~


概述
在Minecraft中,对通常的实体渲染的光照处理是十分简单的。在同一方块位置的实体通常都计算为同一亮度,无法体现出场景光照的层次感和模型的立体感。本文利用OpenGL 3.3+和GLSL,实现了一种效果较好的逐片元平滑光照方法,同时还支持配合顶点法线/法线贴图的光照运算。
由于对Minecraft自身简陋的渲染系统在的渲染效果和效率的不满,我最近一直在研究如何利用Modern GL(可编程渲染管线,GL33+,GLSL)来提高Mod渲染部分的表现力。这篇文章就是这一系列尝试中一个比较重要的结果。
用文中所述的方法可以实现比较真实的平滑光照效果,甚至还可以支持法线贴图哦 :P 当然,这个方法也存在着一定的局限性(主要是效率上的),而且对于如何提供一个优雅的抽象层个人还暂时没有什么头绪。还希望可以和大家多多讨论~
注意:阅读这篇文章前,建议有一些图形学、矢量数学的相关知识,以及对OpenGL的基本了解。如果没有,可以选择狗带可以到这个网站逛一逛。
查看全文
小小的打个广告:欢迎关注联动项目Pipeline(在MC里提供一套完整的Modern GL的渲染管线实现)~


又发新的opengl教程了,旧坑什么时候填?