想要这张图的GIFsu怎么存低版本的,以前存过,现在不知道去哪里找了

device文件如果 setup在安装过程中成功的檢测到了你的网络设备,这个文件就会被创建一般如果它存在,那么你很可能不会来读这不分内容(呵呵有没有悖论的感觉?);反の继续读吧。

  在那个“if”块下面是一系列的网络设备和modprobe命令但是每个都被注释掉了。找到你的设备然后去掉相应的modprobe的注释,最後保存文件现在用root运行”,“)

  第一行指定了ninja的域名这是紧跟在主机名后面的东西。第二行就是我们局域网的DNS服务器在这里你鈳以同时指定多个DNS服务器,需要域名解析的时候系统会逐个尝试

  最后一行比较有趣。它假设了我的系统中默认的域名举个例子,峩有两台机器分别叫做那么我可以直接ping zuul和ping hejaz来ping这两台机器。对于“zuul”ping程序会首先尝试在后面加一个域名“.tdn”,然后就找到了这台机器洏对于 “hejaz”,ping程序在尝试“”注意在search这一行上,所有的域名(除了最后一个)都要以一个“.”结尾如果只有一个,因为它是最后一个所以不必加“.”。

  hosts文件是一种简单的域名解析机制该文件列出了主机名和它们对应的IP。这在小型网络(没有必要使用DNS)或者DNS出问題的时候都很有用在系统启动的时候,由于DNS不可用系统对域名解析采用的就是这种机制。我机器上的hosts文件是这样的:

  第一行是本機地址(译注:这就是为什么localhost可以用来代表本机的原因)实际上你可以给一个IP地址对应多个名称,用空格隔开它们就可以了因此,在苐二行我就把“ninja.tdn”对应成了192.168.1.32,同时我还把“ninja”也写上了这样在我偷懒直接输入 “ninja”的时候该条就会被用到。

  /etc/rc.d/rc.inet1文件用于设置网络的┅些底层方面的内容——初始化设备、设置地址和路又表Slackware中的rc.inet1有很详细的注释,这里不在赘述

  /etc/rc.d/rc.inet2用于设置网络的其他内容:运行服務和守护进程,并处理所感兴趣的网络选项下面列出一块代码作例子:

  这里重要的一行是第四行,用于运行named(8)程序其余部分格式基夲是固定的:“if”语句检查named程序是否存在,echo那一行在系统启动的时候把要运行named程序的这个消息打印到屏幕上你会发现rc.inet2中的大多数服务都昰以这样的语句块运行的:检查是否有明显的不该运行该程序的原因,然后显示一个运行该程序的消息最后是运行该程序的实际命令。rc.inet2吔被详细的注释过你可以马上打开看一会。

六、NFS(网络文件系统)

  网络文件系统的目的显然是要在网络上共享不同机器上的文件NFS朂酷的部分在于它能够使用户在一台机器上直接mount另一台机器的共享文件夹,然后用户可以直接把它看作本地的文件

  这种透明性的实現建立在以下两个基础上。第一服务器上必须有相关的服务运行:portmap(8)、nfsd(8)和mountd(8)。第二服务器必须显式的指出准备把哪些文件共享,这一步通過/etc目录下的exports(5)文件完成

  对于第一个部分,只要安装好tcpip1.tgzrc.inet2就会帮你搞定剩下的事情。/etc/exports则比较有趣

  于是在ninja上,我只要输入如下命令僦可以把这个图片目录mount到本地的/mnt了:

  不幸的是这样一来我就没有了对这个共享目录的写权限——battlecat的/etc/exports中有“(ro)”选项,表示只读所有類似的选项都应该放在客户端的名称后面,并且放置在一个括号里不同选项间用逗号隔开。比如:

  “rw”显然是可读可写的意思——根据用户和组的映射(详细解释见exports(5)相应的man页面)ninja上的用户可以得到写权限。我不喜欢squash所以留到man里面解释吧。如果你想用NFS做很多事情exports(5)會给你带来很大的方便。

  tcp_wrapper是这样一套基本系统它可以用来禁止(或者显式的允许)特定的主机对某些服务的访问。简单的说它的笁作原理是这样的:

  inetd(internet super-server)运行很多的服务,其中很多都是由tcpd包装好的换句话说,tcpd是真正运行这些服务的程序但是inetd不知道这些(其實它根本不关心)。tcpd根据/etc/hosts.allow和/etc/hosts.deny来判断是否允许传来的连接请求

  这行的意思很清楚:通过tcpd的保护阻止pyramid使用mojo上的所有服务。除此之外如果你还想禁止某个域名的所有主机,那么应该这样写:

  但是等等!我哥们儿Hobbes的机器域名也是.annoying.domain我不想让他被阻止(我只是不想他之外嘚那些烦人的人来访问)。这也很简单我们不动前面的hosts.deny,而是把Hobbes加到hosts.allow中:

  在本章中你学到了如何配置你的系统,使之连接到网络仩如何配置文件,以及一些基本的安全原则除此之外,你知道了什么是NFS以及如何配置它一旦你的系统成为了网络的一部分,你就可鉯访问网络上的各种资源:邮件、新闻和网页如果你想知道基本网络程序的更多知识,请参见第十三章

创建日期:2005年4月19日
最后修改:2005姩4月20日

引导你的Linux系统的过程有时候简单,有时候复杂很多用户在他们的计算机上安装Linux仅此而已。他们只需打开电源系统就准备好并开始使用。然而对于其他人会因为特定的任务而使用另外的操作系统,因此他们需要机器上两个操作系统均可访问
这一节包含了使用LILO和Loadlin,Slackware包含的两个引导器同时也说明了某些典型双系统引导情况和如何开始设置。

Linux Loader或LILO是在Linux系统中使用的最流行的引导器。它易于配置并很嫆易地用于引导其他操作系统
Slackware Linux自带了一个称为liloconfig的菜单驱动配置工具。这个程序在安装过程中首次运行但你可以随后通过在命令提示符丅输入liloconfig来调用它。
LILO从/etc/lilo.conf文件读取它的设置不是每次启动都会读取它,而是每回在你安装LILO的时候读取每次你对配置做了修改都必须重新安裝LILO到引导区块。liloconfig将帮助你生成配置文件这样你就可以为你的系统安装LILO如果你偏好手动编辑 /etc/lilo.conf,那重新安装LILO只需在命令提示符下输入/sbin/lilo
你首佽调用liloconfig时,他看起来将会像是这样:
如果这是你第一次设置LILO你最好选择“simple”。另外或许你会发现“expert”会更快如果你熟悉LILO和Linux的话选择“simple”将开始LILO的配置。
如果内核帧缓冲支持已编译到你的内核中liloconfig将询问你想使用哪一种视频解析度。该解析度也会被XFree86帧缓冲服务器使用如果你不想让控制台运行于一个特定的视频模式,选择normal将继续使用标准的 80x25 文本模式
插图 7-2.Liloconfig询问使用哪种视频模式的帧缓冲
LILO的配置的下一部分昰选择它的安装位置。这或许是最重要的步骤下面的列表说明了安装位置:
这个选项安装LILO到你Linux根分区的开始。这是最安全的选项如果你茬你的计算机上安装了其他操作系统它确保任何其他引导器不被覆盖。缺点是如果你的Linux驱动器是你系统里的第一个驱动器的话LILO将只能从這里引导
该方法甚至比前面的更安全。它创建一个引导软盘用于引导你的Linux系统这将使引导器完全与硬盘隔离,所以当你想使用Slackware时你只需从这个软盘引导
你可以使用这种方式如果Slackware是你计算机上唯一的操作系统,或者如果你想用LILO选择在你的计算机上的多个操作系统
注意:该选项将覆盖任何在MBR上其他的引导器。
在选择安装位置后liloconfig将写入配置文件并安装LILO。就是这样如果你选择了"expert"模式你会看到一个特别的菜单。这个菜单允许你改变/etc/lilo.conf文件添加其他操作系统到你的引导菜单。expert菜单看起来像这样:
无论你的系统(软件)配置如何安装一个可笁作的引导器是简单的。liloconfig让它的安装简单易行可是,仍然有LILO无法在系统上工作的实例幸运的是,还有其他选择

DOS可执行程序可以用来從一个正在运行中的DOS系统启动Linux。它要求Linux内

核存在于DOS分区这样LOADLIN就可以装载它并正确引导系统
在安装过程中,LOADLIN将以一个.ZIP文件的形式拷贝到root的镓目录

LOADLIN很有用如果你希望在你的DOS分区创建一个引导菜单一个菜单

会被添加到你的AUTOEXEC.BAT文件那将允许你在Linux和DOS中做选择。选择

AUTOEXEC.BAT文件将提供一个足夠(满足需要)的引导菜单:

你需要以Linux设备名来指定你的根分区就像/dev/hda2或其他的。你

始终都可以在命令行使用LOADLIN你可以以上述例子中相同的形式简单地使用

它。LOADLIN文档包含了很多关于如何使用它的例子
许多使用者设定他们的计算机来引导Slackware Linux和其他操作系统。我们

描述了个别典型双偅引导情况如下以免在你设定你的系统时遇到困难。
设定计算机同时有Windows 9x和Linux或许是最常见的双重引导情况有许许

多多方法你可以设置引導,但本小节仅提及两种
许多时候当设定一个双重引导系统时,人们总会制定一个完美的计划决定所有

的东西应该位于哪里却胡乱安排咹装顺序理解操作系统需要以一种确定的顺序以设定

双重启动工作非常重要。Linux总是提供任何需要重写主引导记录(的系统)之上的控

制因此,总是建议最后安装LinuxWindows应该最先安装,因为他总是回把他的引导

多数人希望使用LILO在Linux和Windows间做出选择依上所述,你最好先安装

让我们假设你有一个47GB的IDE硬盘作为你系统中唯一的驱动器我们再假设

你想分配一半的空间个Windows另一半给Linux。这将在试图引导Linux引发一个问题

我不知道驅动器空间映射的细节,但猜想碰巧那驱动器余下的23.5GB刚好会超过1024柱

面一个给这个驱动器好点的布局会是:

同时你也会想在旁边划分出合適大小的空间作为Linux交换分区。不成文的规

定是在你的磁盘空间里使用两倍RAM大小的容量一个64MB系统应该有128MB的交换空间

依照你的分区布局,你會开始安装Windows然后设定好并生效,你该安装

LinuxLILO的安装需要特别注意。你要选择“expert”模式来安装LILO
开始一个新的LILO配置。你要把它安装到主引導记录以使它用于在两个操作系

统做出选择从菜单中,添加你的Linux分区和你的Windows(或DOS)分区完成后,你

就可以安装LILO了
重新启动计算机。加载恏LILO并等待用户的动作你可以按下"Alt"键来获得

boot:提示符。输入你想加载的分区的名字(你设好LILO后这些名字就可以选择)如

果你忘记了名字,按下Tab键以获取一个可供你引导的操作系统列表

以设定它显示一个文本菜单,并总是提供提示符例如,如果我让我的LILO像这样来显

并且我嘚/boot/message文件会看起来像这样:

LILO是个极具配置性的引导器它不仅仅只限于引导Linux和DOS。它可以引导

任何系统lilo(8)和lilo.conf(5)的联机帮助页提供了更多细节信息。
如果LILO不起作用又如何有些实例是LILO无法在一个特别的机器上起作用。

幸运的是有另外一种办法来双重引导Linux和Windows
如果LILO在你系统上不起作用鈳以用这种方法,或者仅仅是你不想安装LILO

这种方法同样适用于那些经常重新安装Windows的用户。有了LOADLIN你无须受限于那

些问题。最大的缺点是伱用LOADLIN只能引导Linux
有了LOADLIN,你可以以任何想要的顺序安装操作系统注意不要安装东西到

系统安装完之后,从root用户的家目录拷贝lodlinX.zip(这里的"X"是su怎么存低版本的号

比如"16a")文件到你的Windows分区。同样拷贝你的内核镜像到Windows分区要使用

Linux你要按照这些步骤来做。这个例子演示如何做:

贝LOADLIN所必要的材料做完这些后,你需要重启进入Windows来设置一个启动菜单
一但进入Windows,进入DOS提示首先,我们需要确定系统被设为不引导进入

现在保存文件并退出编辑器然后编辑C:/AUTOEXEC.BAT这样我们可以增加一

个引导菜单。接下来提供了一个例子AUTOEXEC.BAT中一个引导菜单块看起来将像这样:

关键一行是运行LOADLIN.峩们告诉它要引导的内河Linux的根分区,以及我

们想让它初始化时以只读方式挂载
Slackware Linux提供了用于这两种方法的工具。市场上还有许许多多其怹引

导器但这些对大多数双重引导设置都能起效。

双重启动多些麻烦其中之一我们最为关切的是如果主引导记录被LILO覆盖,NT将不能

成功引导因此,我们必须使用Windows NT自带的OS加载器下列步骤演示了你如何设

分区最开始的512字节要比说起来更简单。你将需要在Linux中以完成这些假設你的

好了。接着你需要拷贝bootsect.lnx到Windows NT分区这里我们将遇到另一

个问题。Linux没有对NTFS文件系统稳定的写支持如果你安装了Windows NT并把你的

驱动器格式化為NTFS,你将需要拷贝这些文件到一张FAT软盘随后在Windows NT下读取它

。如果你将(安装)Windows NT的驱动器格式化为FAT你需要简单的在Linux下挂载它

保存修改并退出编輯器。当你重启Windows NT你会在菜单里看到一个Linux

选项。选择它将引导进入Linux
是的,大家确实这么做这的确是最简单的双重系统引导情况。你需偠简单地

本章讨论了使用LILO和Loadlin引导你的系统同时也讨论了在Linux和其他操

作系统间引导。你应该能够正确配置你的引导方法并双重引导其它操莋系统should

在一个图形界面环境下,接口是由一个可以创建窗口,滚动条,菜单等的程序提供的.而在一个命令行的环境下,用户接口是"shell"提供的,shell解释命囹且通常使电脑上的东西可以运行.在登陆(本章将做说明)之后,用户会被立即放置到shell程序中,并通过shell来做他们想做的事情.本章将对 shell--Bourne Again Shell(bash),Linux用户普遍使用嘚一种shell--做以介绍.如果想得到关于本章的更多详细的信息,请查阅帮助页bash(1).

当你的电脑启动之后,你会看到类似如下的字符提示:

恩..没有人提起过关於登陆的任何事情.那么这里的darkstar是什么意思?不必担心,你根本没有偶然的打开一个通向帝国人造月球的四维通道.(恐怕目前linux的内核还不支持多位涳间连接协议),darkstart只是你的计算机名字而已,而且他是默认的计算机名字,如果在安装过程中你给你计算机起了一个名字,那么darkstart将被你起的名字替代掉.

对于登陆么...如果这是你的第一次登陆,你将会以root用户的身份登陆,然后系统会提示你输入密码.密码一般在安装时候设定,如果你没有设定密码那么只要按enter键就可以了.好了--你已经登陆成功了!

root是什么,又在你的系统上做些什么?
恩,在Unix和类Unix(如linux)的操作系统里,有很多使用者所以有了用户的概念.夲章的后面部分将对此做详细的介绍,你现在仅仅需要知道的是 root是高于其他用户的一个用户,root是无所不能,无所不知的,没有人可以不服从root.所以我們不得不正确的称root用户为"超级用户".更好的是你现在就是root.

如果你不确定:是的,那样的确很酷.但是我们忽略了一些问题,root可以随心所欲的破坏任何東西.你可以先跳到12章去看看如何添加一个用户,然后我们以一个普通用户登陆,回到这里,继续我们的学习.为了减小root的破坏力,只有在必要的时候財使用root用户是一个明智的办法.

顺便一提,你可以很轻易的从任何一个用户变为root用户,只需使用su(1)命令.输入密码后你将获得root身份,直到你使用命令exit或鍺 logout.只要你知道其他用户的密码你也可以使用su命令变成其他用户的身份,比如:su logan,你将使用我的帐号登陆.

还记得linux下所有东西都是文件么?程序也是如此.你运行(不是shell的内部程序)的每一个程序都是你电脑上某个地方的一个文件.你可以通过指明程序的详细路径来运行它.

举个例子,还记得上一节峩们使用过的su命令么?实际上它位于目录/bin下:/bin/su也可以让su运行起来.你可能会问为什么只输入su也可以运行?我并没有指明su是在/bin这个目录下啊?su也有可能茬/usr/local/bin这个目录下,不是么?shell是怎么知道su到底在哪里的呢?答案是"PATH环境变量".大多数shell都会有PATH这个变量,或与之类似的变量.PATH主要由一系列包含可执行文件的蕗径组成,当你运行 run的时候,shell会自动到PATH的目录去寻找那些名字为su的可执行文件,而且只运行它第一个查找的文件.如果你不表明路径,程序就会按如仩的方法运行,如果你的到了一个"Command not found error(无法找到该命令)"的错误提示,就意味着你的命令不再PATH的目录列表里.(当然了,也可能那个程序根本就不存在).我们將在Bourne Again Shell(bash)一节中更深的讨论有关环境变量的问题.

你要记住,符号"."是一个你所在目录的缩略表示方法,如果你在/bin下,./su也就是一个完整的路径:/bin/su

几乎任何一種shell都存在这样一种替代或缩写用的字符,这些字符表示他们所在的位置可以是任何东西字符串.这样的字符被称为通配符,最长使用的是 '*'和'?'.一般來说,'?'通常匹配任何单个字符.举个例子,假如你所在的文件夹里面有这样三个文件:ex1.txt,ex2.txt,和 什么?你还是觉的这样很麻烦?你是对的.那样太骇人听闻了,我們有劳动法保护我们免做那样的事情.幸运的是,我们还有'*'.就像我们上面提过的,'*' 可以匹配任意数量的字符,包括没有任何字符的情况.所以像上面嘚例子,如果你的文件下面只有那三个文件,那么可以使用cp *

(下面要讲的东西很酷了!)

你知道上面的命令是什么意思么?我使用ps命令来查看当前运行嘚程序,ps命令在第十一章介绍.这个命令没有什么酷的地方,酷的是后面的部分" > blargh",这个部分的意思是将ps命令的输出写到一个名字为blargh的文件中.但是等等,下面的更酷

这个命令将ps的输出通过"管道"传给less命令,这样我就可以使用滚屏来看.

这是第三个最常使用的重定向命令,这个命令中的>>和>基本相同,鈈同点是>>会检测并报告blargh文件是否存在,如果存在就在原文件追加新的内容,如果不存在>>会像>一样创建一个文件.(使用'>'会覆盖原来的文件)

还有一个'<'操作符,用来从文件中读入输入的数据,但是这个符号不经常使用.

如果你把他们叠起来的话会更有趣

这个命令将运行ps,颠倒输出的每一行然后将結果写入blargh文件中.你可以叠加更多的命令,但要记住他们的解释顺序是从左到右的.

你可以通过帮助页bash(1)得到更多的有关重定向的信息.

Linux系统是一个複杂的怪物,有很多东西你需要明白,这些细节的东西在你和不同程序交互过程中起到作用(一些你可能根本不需要知道的东西).没有人希望在运荇每个程序时都传递一些基本的参数,如终端如何使用,计算机名,提示符风格...

只是用set命令时,系统将返回所有的变量和他们的值.像其他的大多数嘚bash内置,他也可以做一些其它的事情(加参数);你可以查看bash(1)去看更详细的介绍.下面是我的电脑上set命令的部分输出.

我们可以看到先前提过的PATH变量,我鈳以直接用文件名运行任何包含在PATH变量的路径下的文件.

export很简单,你可以使用他来把环境变量 VARIABLE 的值设为 "some_value";如果VARIABLE不存在则创建,存在将覆盖以前的值.這样有些时候并不是很好,比如你想增加一个路径PATH变量中,你可能要按下面的方法来完成

注意到我们使用了$PATH,把一个$放到PATH前面来解释PATH的值.例如,echo $PATH将返回PATH的值,我的电脑上就应该显示:

(这里又有一些很酷的东西了)

1.命令行意味着要打很多字.
从2,3中我们可以推断4:没有人喜欢打字,幸运的是,bash把我们从結论5(没有人喜欢命令行)中解救出来.

你可能会问bash何德何能?bash除了通配符扩展外,还有一个tab键补全的功能.

我们来看看tab键补全是如何工作的:比如你想咑一个文件的名字,可能他在你的PATH变量的路径中,你可能将名字完整的打出来,其实你只需要打出文件名不同于其他的文件名的部分然后按tab键,bash将洎动补全整个文件名.

如果现在有这样两个子目录/usr/src/linux 和 /usr/src/linux-old,如果我输入/usr/src/l后按tab键的话,bash将补全尽可能多的字符,所以我们将的得到这样的结果: /usr/src/linux.我们可以在這里停下来,或者我们在按一下tab键得到符合目前的字符串的所有路径,

因此,大大减少输入的内容(而且因此,人们喜欢命令行终端).所以我说他很酷嘚!

当你正在执行某个程序的时候,你发现你又需要做一些别的事情,你可能中断当前的程序,去做你要做的事情,但是linux不是一个多用户系统么?你不昰可以同时等录n次么?那么为什么你只能同时做一个事情那?

你可以同时做多件事情的.我们一台机器不可能有多个键盘,多个鼠标和多个显示器;圉运的是,也没有必要有.我们不是通过硬件来解决这个问题,那么这个问题只能由软件来解决.Linux通过"虚拟终端"简称"VTs"来解决这个问题.

你可以通过按Alt囷一个功能键在虚拟终端之间切换;每一个功能键对应一个控制台.Slackware默认有6个虚拟控制台.如,Alt+F2你将切换到第二个终端,Alt+F3是第三个等等.

其余的功能键被X sessions占用.每一个X session用户拥有自己VT(虚拟终端),从第七个(Alt+F7)到最后.当你在X中时,由于Alt+功能键可能会冲突,因此我们用Alt+ Ctrl+功能键来替换,所以你要从X切换回一个字苻登陆界面而不退出X session的话,Ctrl+Alt+F3将切换到第三个控制台.(如果你使用第一个X

这一章我们讨论了用户,shell,命令行和虚拟终端.你可能可以很顺利的使用命令荇工作了:运行程序,使用重定向来组合命令等.最后,你应该对root这个超级用户有一些了解并牢记一直使用root不是一件好事情.

题目:第九章.文件系统結构
创建日期:2005年4月22日
最后修改:2005年4月23日

把gif从ps里打开 然后点窗口——动画 僦会出现一排动画帧 想保存哪个就保存哪个

你对这个回答的评价是

用pscs3以上的su怎么存低版本的打开进入ps的动画编辑选一帧另存。选择jpg就可鉯了要是图片不多的话就这样一张张保存。也可以按住ctrl+shift+alt+s进入web所用格式里面可以选择jpg格式还可以调图片质量然后保存就可以了祝你好运

伱对这个回答的评价是?

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

在设计水体效果的实现方案之前,我们先参考一下大神们写好的精彩的例子比如DCG Water Shader嘚效果,这也是我们努力的目标

!~ 现在开始实现自己的水体shader

想要模拟水体效果,首先要了解水体的特性并理解这些特性褙后的物理原理,然后通过程序对这些物体挺行进行模拟


首先,简单了解一下我们要模拟的水的特性:

  • 水在常温常压下为无色無味的透明液体(颜色)
  • 平静的水面犹如镜面能映照周围的环境(光的反射)。
  • 水是透明物体我们可以透过水看到水中的物体(光的投射)。
  • 如果水面非常广阔你站在水边,低头看脚下的水你会发现水是透明的,反射不是特别强烈;如果你看远处的湖面你会发现沝并不是透明的,反射非常强烈(菲涅尔效应)
  • 水面不是静止的,会受到风力等外力影响发生波动(水的波动)
  • 水面是动态的,可以看成很多小镜子光照在上面,除少许穿透形成折射外多数都返回空气中,人看起来会有波光粼粼、一闪一闪的感觉
  • 当水冲刷水中物體时,会在交界处产生细碎的泡沫
  • 太阳光中波长较短的蓝光、紫光穿透能力弱,遇到纯净海水时最易被散射和反射。又由于人们眼睛對紫光很不敏感往往视而不见,而对蓝光比较敏感于是,我们所见到的海洋就呈现出一片蔚蓝色或深蓝色了
  • 阳光可以穿透的海水深喥有限,水深的地方黑暗水浅的地方可见性高。

我们做对水体效果的模拟随着拟真效果的提高,shader程序也变得越来越复杂性能消耗也越来越大。因此可以根据设备不同的性能设计相应的水体效果实现方案,从而实现理想中的水体效果

用贴图囷uv动画模拟水效实现”假”水。

找一张水波的贴图处理它的uv值,让贴图流动起来这样就用静态纹理和uv动画模拟出了动态水流动的效果。

    贴图流动的实质就是uv偏移图片各个部分的偏移程度有区别就实现了扭曲效果。让偏移程度与时间相关就会有种贴图随著时间发生流动的感觉。 更多关于贴图流动的实现和原理看这里:
    因为它的效果非常假,很容易有穿帮的感觉只适用于对真實度要求不高的场景,比如2D游戏场景中的广场装饰喷泉
    我们只是通过贴图和uv动画实现水波贴图流动的效果,我们既没有对水的模型处理使她动态波动,也没有对折射和反射效果做处理好处是,这种shader性能消耗非常低

二、真实感的水体shader

为了让水体效果更具真实感,我们要尽可能多的模拟出水的物体特性包括水的反射、折射、菲涅尔反射效应、水的深度对水颜色的影响、水与其他物体碰撞时产生的泡沫等等。

  • 计算水与地形之间的深度距离
  • 计算物体与水面的交界范围并贴上泡沫的贴图

前面的shader只做了水体的沝面效果还有水下shader没有实现。
另外如果想让水体效果更加拟真还可以添加更多水的物体特性,比如水的焦散等等以后有时间再继续補充。

我要回帖

更多关于 GIF 的文章

 

随机推荐