DeathWolf96
本帖最后由 DeathWolf96 于 2016-6-25 23:18 编辑

概述

在Minecraft中,对通常的实体渲染的光照处理是十分简单的。在同一方块位置的实体通常都计算为同一亮度,无法体现出场景光照的层次感和模型的立体感。本文利用OpenGL 3.3+和GLSL,实现了一种效果较好的逐片元平滑光照方法,同时还支持配合顶点法线/法线贴图的光照运算。

由于对Minecraft自身简陋的渲染系统在的渲染效果和效率的不满,我最近一直在研究如何利用Modern GL(可编程渲染管线,GL33+,GLSL)来提高Mod渲染部分的表现力。这篇文章就是这一系列尝试中一个比较重要的结果。

用文中所述的方法可以实现比较真实的平滑光照效果,甚至还可以支持法线贴图哦 :P 当然,这个方法也存在着一定的局限性(主要是效率上的),而且对于如何提供一个优雅的抽象层个人还暂时没有什么头绪。还希望可以和大家多多讨论~

注意:阅读这篇文章前,建议有一些图形学矢量数学的相关知识,以及对OpenGL的基本了解。如果没有,可以选择狗带可以到这个网站逛一逛。

查看全文

小小的打个广告:欢迎关注联动项目Pipeline(在MC里提供一套完整的Modern GL的渲染管线实现)~





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

第一页 上一页 下一页 最后一页