博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ogre的材质与unity的材质的相似性
阅读量:7040 次
发布时间:2019-06-28

本文共 874 字,大约阅读时间需要 2 分钟。

hot3.png

最近研究了火炬之光的游戏资源,这款游戏采用ogre引擎,也就促使我研究了一下ogre的材质文件格式,发现和我经常使用的unity的材质格式有很多相似之处,因此分享出来给大家。

ogre的材质文档可以参考这里 , 而unity的shader文档参考这里

unity的shader语言分为3种,即shaderlab,类似于固定管线语法;cg shader,比较经典的shader语法,相当于对shaderlab的扩展可编程语法;以及surface shader,这个是另外一种系统,没有pass的概念,相当于 基于某种光照模型,然后调整光照模型的参数。 第三种语法不是很熟悉, 如果有了解这第三种模型渊源的朋友可以告诉我。

继续将ogre和unity的对比: 类似的两者的材质语言 都有固定管线和 可编程管线 语法。 其中unity中的shaderlab 标准语法和ogre 相比很类似,但是ogre比unity的shaderlab强大一些。

两者都有基本的Pass概念,基本语法形式都是在Pass中操作texture的混合方式,以及配置标准的光照参数。

ogre有一个 scroll anim的功能,是非常常用的做纹理动画的参数,但是unity的shaderlab中是没有的,可以用 cg shader来模拟。

火炬之光中常见的几种shader技巧: scroll anim 做水流和烟雾; 用 加法混合 模式来做灯光的混合,做出高亮的光照效果; 使用 反射贴图 加上 scroll anim动画,做出 流光的效果; 使用乘法模式,来做光照 照射物体的效果; 使用纹理帧动画来做假河流 的 波光粼粼效果; 使用 alpha rejection 即alpha 测试来做 一些树叶 草丛等;

这些效果都可以用unity来模拟,对于unity不支持的语法,可以写cg shader来模拟。 unity 同时支持queue 渲染队列的概念,来达到渲染顺序的控制。

转载于:https://my.oschina.net/u/186074/blog/380617

你可能感兴趣的文章
LVS
查看>>
css3中translateY、translateX的使用
查看>>
创建mysql触发器
查看>>
shell 从文件按行读
查看>>
笔记3
查看>>
《Linux菜鸟入门》网关及DNS
查看>>
Python~~简介介绍
查看>>
使用cocoaPods,导入第三方库头文件没有自动联想
查看>>
锁定数据行 for update和for update nowait
查看>>
项目管理工具必须具备的5个功能
查看>>
PHP+socket+SMTP、POP3协议发送、接收邮件
查看>>
我的重构--重构案例2
查看>>
大快网站:如何选择正确的hadoop版本
查看>>
dhcp snopping及华三交换机配置
查看>>
java基础-IO
查看>>
python多线程之创建线程
查看>>
我的友情链接
查看>>
sersync同步配置
查看>>
Apache2 httpd.conf配置文件中文版详解
查看>>
Apache Shiro学习笔记(二)身份验证JdbcRealm
查看>>