检视Rage的着色器

 

狂怒Rage 的GLSL着色器代码 下载地址
 
(完了看情况上传,我个人现在觉得,研究不研究无所谓),
 
 
乃是Rage 代码的一部分代码,
 
但是也是可以看到Rage的一些设计原理。
 
 
 
 
着色器代码,集中表现了动画混合,虚拟纹理的加载,反馈,
 
 
对于理解Rage 的megatexture有着很好的帮助。
 
 
 
 
 Rage是由id software软件,
 
 
由传奇程序员卡马克,
 
 
 使用id tech5技术megatexture技术打造了 新一代  的 画面,
 
 
能够在  配置 超低 的  机器配置上,
 
 
运行非常好的画面。
 
 
 
 
 
 
 
 

 

 

 

Rage,

 

游戏由ID软件开发,玩得很开心。

 

但是玩起来更有趣。

 

 

   我已经提出了检查id Tech 5的虚拟纹理或MegaTextures的机制的方法,

 

 

因为它们也被称为。

 

 

但是,如果您真的很好奇这是如何工作的,

 

您想要阅读用于 明白 一些 MegaTexture的  着色器文件。

 

 

由于id  Tech 5 (Rage的引擎)在OpenGL 3.2中实现,

 

 

着色器必须作为源代码上传到驱动程序,

 

所以必须有一种方式让你的手 ,(此处翻译可能有误……)

 

 

但是在你想到拦截  OpenGL调用之前,

 

 

担心来源可能会被模糊化让(此处翻译可能有误……)

 

我告诉你,

 

这更简单:Rage   有一个     命令行选项   来  转储    着色文件:

 

只需将+ set r_dumpGeneratedGLSL 1

 

 

添加到   命令行 ,

 

并将文件转储到您的蒸汽 目录  Steam \ steamapps \ common \ rage \ base \ generated \ glsl 。

 

 

 

    他们显然是从  内部格式  生成的,

 

    可以同时为GLSL(PC),CG(PS3)和HLSL(XBOX360)写入着色器。

 

 

 

这解释了为什么在所有  着色器文件 中  总是 具有  相同的  功能,

 

这些功能可以封装纹理访问和一些基本的数学函数 ,

 

使用这些包装器可以轻松地将代码转换成多个着色器语言。

 

   我不会在这里引用任何着色器,

 

因为它们是受版权保护的,

 

但是如果你拥有这个游戏的PC版本,

 

你可以转储自己的设置并看看。

 

 

不要害怕 848个文件,其中一半是CG,

 

每个顶点着色器只有一个片段着色器 - 不会混合着色器。

 

最终会有212个着色器程序,

 

其中有很多的冗余 ……,

 

如果你有两个稍微不同的材料,你将得到两个共享99 %代码的着色器程序。

 

(译者注:Rage 的着色器,代码文件非常的多,

 

分为fvertex和fargment两大部分,

 

代码真是复杂,

 

没有源代码,只有着色器代码,也只能猜透 一小部分而已,)

 

有趣的是,

 

大多数  户外环境  基本上只是   纹理查找

 

(在具有   颜色空间   转换的  虚拟纹理  和  可选的  雾) ,

 

所有照明都是   预烘焙   的!

 

 

即使是人的 动态照明 也是非常简单的,

 

让我想起了 Half-Life 2的简单光模型。

 

你可能还想看一下  顶点着色器中的动画:这是一个很好的阅读方式,

 

尽可能地挤压尽可能多的有效载荷变成很少的变量。

 

你想了解更多吗?好。获取glintercept 的副本,

 

 

并将提供的OPENGL32.DLL与配置文件一起 放在 您 的RAGE 文件夹 中

 

(请参阅提供的文档)。

 

 

因此,您可以  转储用于  渲染一帧的所有  OpenGL调用。

 

在早期的Rage版本中,

 

您还可以使用此工具在游戏过程中修改所有着色器,

 

看看会发生什么。

 

可悲的是,这破坏了最近的更新之一 ,

 

 我指的 统一缓冲区,

 

因为这似乎只是使用UBO的着色器程序发生,

 

并且 glintercept 可能不会在重新链接着色器之前查询统一的缓冲区绑定点,

 

所以找不到他们缓冲区了 

 

请注意,这只是一个猜测,我没有时间来验证和修复。

 

 

但是如果你做了 -,或者一段时间没有更新你的steam ,

 

你可以在 照明或虚拟纹理代码 等方面“打呵欠”。

 

例如,整个环境并不是法线!载具 和人有他们,

 

但在环境中它是混合的(外围没有任何):

 

没有法线的物体是白色的,

 

另一个在RGB中显示  世界空间法线。

 

请注意,游戏中的 人物 有非常详细的法定地图和管道。

 

其中一个垃圾邮件具有正常的地图,

 

下一个不是 , Console和PC端口上 必须使用 相同资产的微量 内存的标志......

 

有可能操纵个人效果,

 

您可以看到他们的视觉影响有多大,

 

例如  广告牌:

 

如果   我们  停用  它们(通过将 阿尔法 设置为0.0),

 

场景 看起来更加 “钝”,

更少的动画( 当 云 移动时,这更加 明显):

 

要看看这是多么 强调 ROP让  我们将 阿尔法设置为1.0,

 

并查看所有生成的片段:

 

 

或者将  颜色设置为很好的 红色,看看所有的小灌木丛:

 

它还需要像这样的操作来 显示这些简单 广告牌 的问题:

 

如果 四边形相交,则找不到正确的 绘制顺序:

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值