共计 4 篇文章

聚光灯

今天根据第6章的介绍,实现了聚光灯的着色器。教材上有很多写错的地方,我在实现这个着色器时遇到了不少坑,好在是搞定了。 上图中,变量 uAngle 表示聚光灯的角度;uLeftRight 变量用于调整聚光灯的投射焦点,进一步改变光照的方向;uWidth 用于调整聚光灯边缘的模糊程度。当 uWidth = 0.0 时,聚光灯的边缘会显得非常锐利。 具体实现时,主要遇到的坑是光源的位置。教材上使用的坐标为 vec4(0., 0. ...

着色器和纹理

现在开始学习“第9章 片源着色器中的表面纹理”。 先粗略浏览了一下本章的内容,发现一个关键问题:我还是不太明白到底什么是Texture(纹理)。 我在学习jMonkeyEngine3时,也曾使用AssetManager加载过Texture对象,它们似乎只是普通的Image(图片)。我的疑问是:Texture与Image有什么异同点呢? 在jME3中,Texture对象有一些特别的参数,比如 WrapMode、WrapAxis、MinFilter、MagFilter。通过实际开发,我知道MagFilter.Nearest可以让纹理表现出像素风格,但是为什么会这样呢? 另外,为了让纹理获得各向异性效果, ...

理解着色器

这几天,陆陆续续学完了“第7章 顶点着色器”和“第8章 片元着色器和表面外观”。基本上理解了什么是渲染管线,也明白了GPU编程与一般程序开发的差异。最让我高兴的是,终于明白了“平滑(Gouraud)着色”与“Phong着色”是什么意思,并且自己动手实现了一次ADS光照模型。 另外,为了弄清楚自己电脑支持的OpenGL和GLSL版本,找到了 Geeks3D 开发的 GPU Caps Viewer, ...

今天开始学着色器编程

今天开始学着色器编程,计划在2017年7月到9月,初步掌握GLSL。 学习教材: 书名:图形着色器——理论与实践(第2版) 原名:Graphics Shaders: Theory and Practice 作者:Mike Bailey, Steve Cunnungham 翻译:刘鹏 出版社:清华大学出版社 ISBN:978-7-302-31599-5 调试工具: ...