修改ETM,使之支持多格多层纹理
来源:互联网 发布:删除开机引导软件 编辑:程序博客网 时间:2024/05/29 02:23
ETM本身的多层纹理帖图功能是针对整个地图的,所有地形分块都是使用的一个材质,这样跟据我的显卡,只支持四层纹理,再去掉覆盖图,只能用三张帖图来表示整个地面,表现内容很不丰富。要使ETM基于格子附帖图就得找到Material与mesh的关联代码,可是分析完ETM刷帖图这部分的源代码后,怎么找都找不到ETM对设置进去的材质进行关联。他的setMaterial()函数只是简单的把材质赋给成员变量mMaterial,而这个mMaterial经过查找后发现这个成员变量重来就没有被使用过。这使我很诧异,变量没有使用,怎么可能绘制时确有效果呢,后来感觉可能不是ETM中的问题,问题可能是OGRE中的特殊机制。ETM中Tile这个类是从OGRE中的Renderable和MovableObject中派生出来的,Renderable是绘制mesh网格的类,最有可能与材质关联有关系了,与是我看了一下renderable类,发现getMaterial()是纯虚函数,而ETM中继承后只是简单的将mMaterial成员变量返回了下。于是我在getMaterial函数上加断点,发现每循环这个函数都被调用,在堆栈中看是RenderQueue类调用的getMaterial(),这下明白了,OGRE把getMaterial设成纯虚函数让用户去实现,然后OGRE会在渲染队阵类中自动调用用户实现后的getMaterial()去关联相关的mesh。也就是说只要修改下getMaterial函数,给每个tile增加个成员材质,get时返回这个成员,就可以实现每格相对独立的多层纹理。
- 修改ETM,使之支持多格多层纹理
- 多层纹理混合
- [UnityShaderCookbook 读书笔记] [04] 多层纹理
- ThinkPHP 多层MVC支持
- 图形学 - 多层纹理技术的底层原理
- UnityShader之纹理贴图滚动实现(修改UV坐标)
- opengles之修改已有纹理glTexSubImage2D函数用法
- 修改浏览器使之支持WML格式页面
- 修改Eclipse项目使之支持JPA工具
- D3D11修改纹理数据
- Unity3D批量修改纹理
- OGL纹理之纹理代理
- 初探ETM
- NEON ETM
- Unity支持的纹理格式
- 3D地形多层纹理混合加阴影渲染方法
- 3D地形多层纹理混合加阴影渲染方法
- 3D地形多层纹理混合加阴影渲染方法
- Hawk搜索引擎平台0.6.9测试版(提供下载)
- Java EE 技术专题
- 使用 Eclipse 和 PDT 调试 PHP
- 使用 BPEL 并行路径模式和自定义属性进行多状态维护
- 使用 XPath 定位 XML 文档中特定的部分,第 1 部分
- 修改ETM,使之支持多格多层纹理
- 与 DB2 和 Informix 数据库一起使用 WAS CE Web 服务器
- 小记Java的动态机制
- Hawk搜索引擎平台0.6.9测试版(提供下载)
- 删除gridview读取的用户
- Linux SLUB 分配器详解
- Java 下实现锁无关数据结构
- Snort 使用手册,第 2 部分:配置
- 探索模型驱动开发(MDD)和相关方法,第 3 部分