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教程了,旧坑什么时候填?

DeathWolf96
耗子 发表于 2016-6-26 00:40
又发新的opengl教程了,旧坑什么时候填?

那个基本确定不会填了~一个是那套教程是两年前起步的,自己当时对图形学的认识相当粗陋,所以介绍中带有很多不妥当或不完善之处;另一个是那套教程基本使用的是Minecraft的传统渲染方法(Legacy API+Tessellator)。讲真,老的一套渲染方法是效率低下以及不科学的(虽然大家都在用)。最近就一直在造轮子,尝试一些新的渲染方式,在这段时间内应该会离散的发一些文章,等到之后才会考虑总结一下发系列教程吧。

missing_tg
各种看不懂~

风铃666
6666666666

风铃666
666666666666

风铃666
6676666666

风铃666
6666666666666

印心吖
MCBBS有你更精彩~

lq2007
查看全文 是要挂梯子才能上的吗?我这里打不开欸

我是43
mc有你更好

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