Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

查看: 4411|回复: 128

[其它开发教程] [光影包制作教程] 第五章———向世界中添加迷雾

  [复制链接]
悲剧小白 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
1905
钻石
性别
保密
注册时间
2015-4-21
查看详细资料
 楼主| 发表于 2019-7-7 15:04:49 | 显示全部楼层 |阅读模式

您尚未登录,立即登录享受更好的浏览体验!

您需要 登录 才可以下载或查看,没有帐号?注册(register)

x
本帖最后由 海螺螺 于 2020-1-22 21:03 编辑

索引待建立



通过前四章的教学,我们的光影效果也逐渐完整。现在请你加载这个光影后进入水下,有没有一种违和感?是的,水下的世界同样看的很清晰,这是因为缺少雾导致的。在现实世界中无时无刻存在着雾,当我们向远处眺望时,远处的事物会变得朦胧。在MC中,眺望远处同样可以有朦胧的效果,这一章我们就向世界中添加雾来实现这个效果。

开始编写光影文件

这次我们需要同时对三个渲染器共六个文件进行更改,分别是gbuffers_texturedgbuffers_skybasicgbuffers_textured_lit,但是更改的内容是一致的,我这里之说其中之一。

gbuffers_textured.vsh:
  1. #version 120

  2. varying vec4 color;
  3. varying vec4 texcoord;

  4. void main() {
  5.     vec4 position = gl_ModelViewMatrix * gl_Vertex;
  6.     gl_Position = gl_ProjectionMatrix * position;
  7.     gl_FogFragCoord = length(position.xyz);
  8.    
  9.     color = gl_Color;
  10.     texcoord = gl_TextureMatrix[0] * gl_MultiTexCoord0;
  11. }
复制代码
gbuffers_textured.fsh:
  1. #version 120

  2. uniform sampler2D texture;
  3. uniform int fogMode;

  4. varying vec4 color;
  5. varying vec4 texcoord;

  6. void main() {
  7.     gl_FragData[0] = texture2D(texture, texcoord.st) * color;
  8.    
  9.     if(fogMode == 9729)
  10.         gl_FragData[0].rgb = mix(gl_Fog.color.rgb, gl_FragData[0].rgb, clamp((gl_Fog.end - gl_FogFragCoord) / (gl_Fog.end - gl_Fog.start), 0.0, 1.0));
  11.     else if(fogMode == 2048)
  12.         gl_FragData[0].rgb = mix(gl_Fog.color.rgb, gl_FragData[0].rgb, clamp(exp(-gl_FogFragCoord * gl_Fog.density), 0.0, 1.0));
  13. }
复制代码

代码解释

首先看一下我们都干了些什么,这些文件都是在第三章中创建的,这里只解释更改的内容。
在顶点着色器中,我们把gl_Position = ftransform()换成了三行代码。之前用的是MVP全自动变换(第二章中有解释),但是很多光照计算和雾计算是发生在MV变换后P变换前,所以我们要把MVP变换拆出来。
在片段着色器中,定义了一个雾类型变量uniform int fogMode,OptiFine会把雾的类型传递到这个变量中。在MC中,我们看到的雾分为两种:一种是我们大多数时间看到的线性雾OptiFine有一个放大功能,默认是C键,放大后看远处会有朦胧感,这就是线性雾的效果;另一种是指数雾,我们到水下后,只有眼前极近的距离能看清楚,稍微远一点就看不清了,这是因为雾在按照指数级增长
之后,我们用if-else的方式判断雾的类型,其中,9729为线性雾,2048为指数雾。在if分支中,分别实现最基本的线性雾和指数雾。

效果展示

file_1562482315000.jpg
file_1562482315000.jpg
远处的山和水下都有一种朦胧感(调过gamma值的需要调回来)
如果你的代码加载后效果是这个样子,那么恭喜你,本章的目标你已经达成了。

代码下载

第五章最终代码.zip (3.5 KB, 下载次数: 76)

评分

参与人数 5人气 +5 金粒 +31 收起 理由
千本樱 + 1 + 5 很强,在学了.jpg
Ghost_01 + 1 + 5 MCBBS有你更精彩~
heyang + 1 + 15 Ssssssssssssssssssss
991200448 + 1 + 6 神乎其技,不服不行!
ma天 + 1 神乎其技,不服不行!

查看全部评分

么海喂 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
40
钻石
性别
保密
注册时间
2019-7-6
查看详细资料
发表于 2019-7-8 13:14:45 | 显示全部楼层
小白路过来看看  
回复

使用道具 举报

ma天 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
408
钻石
性别
保密
注册时间
2015-4-2
查看详细资料
发表于 2019-7-9 07:46:28 | 显示全部楼层
啊啊啊,大佬!
回复

使用道具 举报

MCmarrymebaby 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
105
钻石
性别
保密
注册时间
2019-7-9
查看详细资料
发表于 2019-7-9 08:57:33 | 显示全部楼层
支持作者66666666666
回复

使用道具 举报

秋枫雨 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
123
钻石
性别
保密
注册时间
2018-10-13
查看详细资料
发表于 2019-7-9 14:22:57 | 显示全部楼层
看下大佬怎么做的
回复

使用道具 举报

1106113909 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
111
钻石
性别
保密
注册时间
2015-7-8
查看详细资料
发表于 2019-7-9 21:53:45 | 显示全部楼层
6666666666666666666
回复

使用道具 举报

星之爆火 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
94
钻石
性别
保密
注册时间
2016-10-4
查看详细资料
发表于 2019-7-10 12:39:57 | 显示全部楼层
大佬666 再看看我咸鱼的技术
回复

使用道具 举报

心跳C 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
648
钻石
性别
保密
注册时间
2016-3-26
查看详细资料
发表于 2019-7-11 19:47:08 | 显示全部楼层
wefewf                      ewe
回复

使用道具 举报

LCBRST 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
72
钻石
性别
保密
注册时间
2017-10-28
查看详细资料
发表于 2019-7-11 21:18:14 | 显示全部楼层
楼主NB!!!!
回复

使用道具 举报

鸭蛋只吃黄 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
5918
钻石
性别
保密
注册时间
2015-7-18
查看详细资料
发表于 2019-7-12 08:42:33 | 显示全部楼层
支持作者, 我主要是想看看效果...
回复

使用道具 举报

lingchaohao123 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
51
钻石
性别
保密
注册时间
2019-7-6
查看详细资料
发表于 2019-7-12 09:08:27 | 显示全部楼层

楼主厉害!!!!!
回复

使用道具 举报

DponHIM 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
306
钻石
性别
保密
注册时间
2019-3-16
查看详细资料
发表于 2019-7-12 12:37:32 | 显示全部楼层
谢谢分享
回复

使用道具 举报

河南陈少 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
290
钻石
性别
保密
注册时间
2019-3-31
查看详细资料
发表于 2019-7-13 14:39:36 | 显示全部楼层
本帖最后由 河南陈少 于 2020-2-15 16:52 编辑

发错了,发错了

回复

使用道具 举报

1394640943 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
320
钻石
性别
保密
注册时间
2014-8-4
查看详细资料
发表于 2019-7-14 15:30:38 | 显示全部楼层
我就看看
回复

使用道具 举报

「彧譞」 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
331
钻石
性别
保密
注册时间
2019-5-31
查看详细资料
发表于 2019-7-15 11:24:45 | 显示全部楼层
学习学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 京公网安备 11010502037624号 | 手机版

GMT+8, 2020-8-11 08:09 , Processed in 0.065998 second(s), Total 25, Slave 24 queries, Release: Build.2020.07.08.1452, Gzip On, Redis On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标 本站与Mojang以及微软公司没有从属关系

© 2010-2020 我的世界中文论坛 版权所有 本站原创图文内容版权属于原创作者,未经许可不得转载

快速回复 返回顶部 返回列表