跳转到内容

GtkRadiant/创建天空着色器

来自维基教科书,开放世界中的开放书籍

创建天空着色器

GtkRadiant

如果您已经尝试过游戏附带的一些天空,但没有一个适合您的地图,或者您只是想为了好玩而创建自己的天空,您将需要创建一个天空着色器以及六张图像。

让我们从图像开始,因为它们更难创建。如前所述,天空盒由六张图像组成,每张图像对应一个方向,例如 **后面**、**前面**、**左边** 和 **右边**,以及一张 **上面** 和一张 **下面** 图像。我不会详细介绍如何制作这些图像,因为我不擅长做这些事情,但基本上,您需要确保 *后面*、*前面*、*左边* 和 *右边* 图像相互对齐,如果您不想在角落出现一些难看的线条。

还要确保 *上面* 图像与所有其他图像对齐,否则也会出现一些难看的线条。通常,*下面* 图像不需要很好,因为您想避免看到它,因为它会让地图看起来像是“漂浮”的。如果您确保看不到下面图像,您可以将其制作成单色或其他颜色…无论如何,当您制作完所有这些图像后,将它们命名为:*nameofsky_bk*、*nameofsky_ft*、*nameofsky_rt*、*nameofsky_lf*、*nameofsky_up* 和 *nameofsky_dn*,您可以将 *nameofsky* 更改为您喜欢的任何名称。文件格式可以是 *jpg*(非渐进式)或 *tga*(有些游戏也支持 *png*)。

着色器应如下所示

 textures/mapname/nameofsky
 {
 	qer_editorimage textures/skies/sky.tga //path of the image that shows up in Radiant
 	skyparms textures/mapname/nameofsky 1024 - //farbox cloudheight nearbox
 	q3map_sunExt 1 0.86 0.67 350 -102 40 2 16 //red green blue intensity degrees elevation deviance samples
 	q3map_lightmapFilterRadius 0 160 //self other
 	q3map_skyLight 300 3 //amount iterations
 	surfaceparm 	sky //tells the game it's a sky
 	surfaceparm 	noimpact //no projectiles impact here
 	surfaceparm 	nolightmap //no shadows on this surface
 	surfaceparm	nomarks //no burn marks
 }

要添加滚动云层,您必须在主体之后添加一个纹理阶段,如下所示

textures/mapname/nameofsky
 {
 	qer_editorimage textures/skies/sky.tga
 	skyparms textures/mapname/nameofsky 1024 -
 	q3map_sunExt 1 0.86 0.67 350 -102 40 2 16
 	q3map_lightmapFilterRadius 0 160
 	q3map_skyLight 300 3
 	surfaceparm 	sky
 	surfaceparm 	noimpact
 	surfaceparm 	nolightmap
 	surfaceparm	nomarks
 {
        map textures/skies/cloudlayer1.tga  //the map of the clouds, put an alpha channel into the texture for best results
        blendFunc blend  //to make it so you can see the skybox behind the cloudlayer
        tcMod scale 3 3  //this makes the texture repeat more often, in this case, 3x as much in each direction, play around with the values as you like
        tcMod scroll 0.2 0.1  //this makes it move.  play around with the values here until they are to your liking
 }
}

注意:如果您有多个层,您将收到错误,因为游戏无法处理它。如果您收到任何错误,请删除云层阶段。

华夏公益教科书