制作带影子或光斑的贴图

简介:

用3dmax制作带影子或光斑的贴图
(写于2004年2月,第一版发表在GameRes上)
假影子是假三维的一种,有时候为了节省运算,让程序的效率提高,将静止物体的影子或者光斑直接赋予纹理之上,最著名的游戏里很多使用这种方便的方法,如下:
 


光影的即时运算将会占用大量的CPU效率和内存,有时候,有的影子或者光斑完全不会动,那么就没有必要用即时的方法来浪费宝贵的资源,方便得方法就是直接把影子或者光斑画在贴图纹理上,现在,我们用一个实际例子来如何便捷的制作这样的贴图。
一般来讲,在纹理上画影子或者光是一件麻烦的事情,因为你不可能在游戏中直接为他画上影子,有时候则需要反复对贴图进行修改,我敢打赌您一定不愿意做这样的费力工作。在此,我们将了解如何简单便捷的为场景中的静止物体“画”影子。
3DMax5以上的版本提供一个功能,可以直接将影子渲染到贴图的功能。通过本节的介绍,您不需要为静止的物体初始化影子和麻烦的灯光调整而发愁。
请参照附带的一些例子资源。
我们先来看看效果:我们所有的演示将由3DMax导出没有任何灯光及正常纹理的.x文件在d3d9的模型查看器里查看即时效果(用其他的工具也无所谓)。
您可以在例子资源中将.3ds导入3DMax进行研究,也可以在DirectX Utilities的MeshView工具打开.x文件进行测试。
 


这个是没有任何灯光,也没有任何影子,能够看出来,缺少影子的场景看起来很不协调。(mm0001.x就是这个文件。)
为了产生最终效果我们进入3Dmax为我们的场景打几盏灯,调整你想要的光源,并且让灯源能够照出影子。
 


然后,使用菜单项Rendering下的Render to Textrue选项,当然这个时候,请确认您的场景模型已经被选中,如果您的是一个大场景,那么笔者建议您将场景合并成为一个mesh后再使用该功能。

首先先不考虑其他设置,我们直接点击Add为其添加需要渲染得纹理,这时出现如下对话框
 


选择DiffuseMap,其他的选项程序员可以研究,笔者不推荐美术人员在这个地方太过关注。
选择之后,主窗口就会出现相关的信息,例如纹理路径、名称、精度等可调整项,稍加修改即可为您导出适合您程序的纹理贴图,选择Render,将得到如下样子的贴图:
 


很明显,纹理上已经拥有了“影子”和“光斑”,得到纹理同时模型的身上就已经拥有了Automatic Flatten UVs修改器,实际上它和Unwrap UVW是一样的,从字面意义上可以看出,是由max自动为其修改的贴图坐标,您可以做一下其他尝试,便于了解。

于是我们使用这个贴图和贴图坐标生成新的模型(mm0002.x),下面是最终的效果
 


这一张就是使用上面的贴图贴图的最终效果,再次说明,这个场景里面除了环境光以外的没有任何光源,影子的效果全靠贴图实现。

使用这种方法可以为场景减少运算负担的同时润色不少。以上是一个简单的盒子,下面是一个较复杂的场景,得出的效果也是不错,相信我,再复杂的场景,一样能够通过上面的方法,便捷制作一张精美的带各种光照效果的贴图:P
 


最后,我们搞定一下常见的错误,错误如下:
 


这个问题是,贴图坐标修改器不被导出插件辨认,解决的方式是先导出成为3ds文件后,再导入到3DMax, 您可以看到原来的修改器已经没有了,然后重新赋予由Render to Textrue生成的贴图纹理即可解决。除此之外,先将UVWs坐标信息Save下来,然后Load给模型也是一种好方法,但是比较麻烦,如果您对此有兴趣,请和我联系了解。

刚开始,您可能找不到窍门,而觉得制作起来非常的麻烦且困难重重,这一切都是因为经验不足而造成的,如果您能实际制作1-2个事例,这一切很容易熟练掌握。
例程档案点击下载: 例程档案文件


本文转自nowpaper 51CTO博客,原文链接:http://blog.51cto.com/nowpaper/712646


相关文章
|
3月前
|
安全 Windows
5款好用的软件,让日常的生活增添一抹色彩
时光如梭,科技的飞速发展为我们的日常生活注入了无限活力。今天分享5款好用的软件,为日常的生活与工作增添一抹色彩。
35 0
|
4月前
|
人工智能 搜索推荐 定位技术
证件照尺寸修改、图片背景换色、照片大小压缩…几个在线图片编辑、处理网站推荐
证件照尺寸修改、图片背景换色、照片大小压缩…几个在线图片编辑、处理网站推荐
|
4月前
微信小游戏制作工具中关于背景图的设置
微信小游戏制作工具中关于背景图的设置
97 0
|
6月前
|
机器学习/深度学习 缓存 人机交互
OpenCV-实现背景分离(可用于更改证件照底色)
OpenCV-实现背景分离(可用于更改证件照底色)
185 1
|
6月前
|
搜索推荐 图形学
透明度和透明贴图制作玻璃水杯
模型透明度是控制整个模型的透明度属性,而透明贴图是一种贴图技术,用于控制模型表面每个像素的透明度级别。透明贴图可以与模型的透明度属性结合使用,以实现更复杂和精细的透明效果。通过调整透明贴图的透明度通道,可以实现模型表面不同部分的个性化透明度设置。
103 0
|
9月前
|
计算机视觉
平面设计实验二 相册的制作与图层
平面设计实验二 相册的制作与图层
52 0
|
11月前
五款炫酷精美动态登录页面,彩虹气泡动态云层深海灯光水母炫酷星空蛛网HTMLCSS源码
五款炫酷精美动态登录页面,彩虹气泡动态云层深海灯光水母炫酷星空蛛网HTMLCSS源码
69 0
|
iOS开发 MacOS Windows
Unity2D像素游戏开发——Aseprite简单人物绘画+动画制作导出精灵表示例
Unity2D像素游戏开发——Aseprite简单人物绘画+动画制作导出精灵表示例
504 0
Unity2D像素游戏开发——Aseprite简单人物绘画+动画制作导出精灵表示例
|
前端开发 程序员
Threejs - 灯光?投影?? 有光的地方就会有影子
Threejs - 灯光?投影?? 有光的地方就会有影子