上次画的刀因为是装备, 所以有多种颜色的纹理

而多种颜色的纹理都要去查表...

虽说DBC文件很简单, 但现在懒得看

找个单一纹理的弄吧, 纹理名全存在M2文件里的

随便看了看, 觉得这头蓝龙挺帅的, 就它了

这次除了Mesh正好可以研究下Animation

目标:

  • 2009/3/15: 模型+纹理绘制

没有进行渲染状态的管理, 比如alpha test/blend切换, envMap切换, cull切换等等. 这样是不是要写一堆shader来设置State?

牙和爪子部分第二层贴图把原来的颜色覆盖了, 可能是因为应该用envMap的原因吧

其它部分现在统一用的alpha blend, 这样会出现遮挡问题, 需要进行排序. 想想应该能用alpha test代替.

(因为没走N3的渲染流程, 发现它默认是不创建DepthBuffer的, 囧......害我查了半天为啥z test失败了)

解析文件时有5张纹理, 而texture unit竟然有12个, 也就是说有些纹理在多次DP中用到了

冒似纹理的寻址方式也要设置, 暴雪真是的, 有用的技术全给用上了-_-

看来在解析骨骼动画之前还有一大堆的绘制问题要解决

  • 2009/3/22: 为了切换渲染状态写了一堆ShaderVariation(technique):

technique Static < string Mask = "Static"; > { pass p0 { VertexShader = compile vs_3_0 VertexShaderFunc(); PixelShader = compile ps_3_0 PixelShaderFunc(); } } //------------------------------------------------------------------------------ technique SingleSided < string Mask = "SingleSided"; > { pass p0 { CullMode = CCW; } } //------------------------------------------------------------------------------ technique TwoSided < string Mask = "TwoSided"; > { pass p0 { CullMode = None; } } //------------------------------------------------------------------------------ technique Opaque < string Mask = "Opaque"; > { pass p0 { AlphaTestEnable = False; AlphaBlendEnable = False; ZWriteEnable = True; } } //------------------------------------------------------------------------------ technique Transparent < string Mask = "Transparent"; > { pass p0 { AlphaTestEnable = True; AlphaRef = 1; AlphaFunc = GreaterEqual; } } //------------------------------------------------------------------------------ technique Alpha < string Mask = "Alpha"; > { pass p0 { AlphaBlendEnable = True; SrcBlend = SrcAlpha; DestBlend = InvSrcAlpha; ZWriteEnable = False; } } //------------------------------------------------------------------------------ technique AddColor < string Mask = "AddColor"; > { pass p0 { AlphaBlendEnable = True; SrcBlend = SrcColor; DestBlend = One; ZWriteEnable = False; } } //------------------------------------------------------------------------------ technique AddAlpha < string Mask = "AddAlpha"; > { pass p0 { AlphaBlendEnable = True; SrcBlend = SrcAlpha; DestBlend = One; ZWriteEnable = False; } } //------------------------------------------------------------------------------ technique Modulate < string Mask = "Modulate"; > { pass p0 { AlphaBlendEnable = True; SrcBlend = DestColor; DestBlend = SrcColor; ZWriteEnable = False; } } //------------------------------------------------------------------------------ technique ModulateX2 < string Mask = "ModulateX2"; > { pass p0 { AlphaBlendEnable = True; SrcBlend = DestColor; DestBlend = SrcColor; ZWriteEnable = False; } }

纹理寻址还没去管它-_-. 用的时候可以用这些pass来设置渲染状态啦

  • 2009/3/29: 解决了渲染状态的切换, 按pass进行了排序. 这样就修正了透明/遮挡/剔除错误.

还差个球形环境映射, mesh基本上就搞定了

挑战蓝龙Kalecgos相关推荐

  1. ADAS摄像头20个技术挑战

    ADAS摄像头20个技术挑战 车载相机已经成为现代汽车中不可或缺的一部分,不论在辅助驾驶还是在自动驾驶应用领域,越来越多的相机装备在机车上. 根据Tesla现在的配置,全车有9个Camera. 根据W ...

  2. 模拟内存计算如何解决边缘人工智能推理的功耗挑战

    模拟内存计算如何解决边缘人工智能推理的功耗挑战 How analog in-memory computing can solve power challenges of edge AI inferen ...

  3. Usb-type-C端口实现的挑战与设计方案

    Usb-type-C端口实现的挑战与设计方案 USB Type-C port implementation challenges and design solutions USB from 1.1 t ...

  4. 克服汽车摄像头连接挑战

    克服汽车摄像头连接挑战 Overcoming automotive camera link challenges 摄像头系统和摄像头连接技术在车辆上的应用越来越广泛,以帮助驾驶员并增强驾驶体验.具有单 ...

  5. 读后感和机翻《人类因果迁移:深度强化学习的挑战》

    研究朱松纯FPICU体系的第1篇文章 <Human Causal Transfer: Challenges for Deep Reinforcement Learning>CogSci 2 ...

  6. DenthDepth:深度估计(三维场景构建)——单目视觉挑战激光雷达

    网上看到这个 MAXIEYE周圣砚:欲靠单目视觉挑战激光雷达 搜了一下,感觉应该就是这个工程,https://github.com/ialhashim/DenseDepth 宣传的检测效果 我网上搜一 ...

  7. C功底挑战Java菜鸟入门概念干货(一)

    一.认识Java 1.Java 程序比较特殊,它必须先经过编译,然后再利用解释的方式来运行.  2.Byte-codes 最大的好处是--可越平台运行,可让"一次编写,处处运行"成 ...

  8. 2019第四周作业(基础作业+挑战作业)

    基础题1: 输入一个正整数 n (1≤n≤10)和n 阶方阵a的元素,如果方阵a中的所有元素都沿主对角线对称,输出"Yes", 否则,输出"No".主对角线为从 ...

  9. 郭为:大数据时代的企业管理挑战

    互联网时代,创新使得财富积累的速度前所未有的快,贫富不均也前所未有地分化.这个时代,世界的竞争变成人与人的竞争,人与人的竞争就是智慧的竞争,就是人的创新能力的竞争.如何才能提高人的竞争力,是管理科学面 ...

最新文章

  1. centos7安装配置pgAgent
  2. Android 图片合成:添加蒙板效果 不规则相框 透明度渐变效果的实现
  3. git如何合并指定文件内容_git小技巧--如何从其他分支merge个别文件或文件夹
  4. mysql的基本数据类型_mysql基本数据类型(mysql学习笔记三)
  5. 关于ios调用银联sdk编译遇到的各种问题
  6. Django(part13)--过滤器
  7. 3.6.4python下载安装教程_python 3.6.4安装教程
  8. 大数据 — Hadoop
  9. 今天完成了share memory的测试
  10. vue.js高德地图实现热点图
  11. DSP之外部设备连接接口之HPI
  12. 手摸手教你git配置ssh
  13. 一份好的商业计划书该怎么写
  14. 计算机必备四大游戏,超大型游戏必备插件
  15. 无线网检查服务器在那,无线网络服务器地址在哪里找
  16. android 视频恢复软件,手机视频恢复软件
  17. zucc 可视化 大作业
  18. [ASP.NET]文件处理
  19. 采用CXF框架发布WebService
  20. python影视数据爬虫sqlite源码+论文(完整版和简洁版)

热门文章

  1. 移除微信昵称中的emoji字符
  2. WSL1 和 WSL2 的优缺点
  3. 手机号分隔成344的格式
  4. java 千位分隔_金额以千位分隔 可以使用DecimalFormat类来实现
  5. 用CSS设置颜色、背景和图像效果
  6. 最详细的国内各银行收费情况一览表以及转帐到帐情况
  7. 实时面部动作捕捉技术:Faceware Live
  8. 初入产品一直坚持做的事情
  9. ccf---魔咒词典
  10. 数理逻辑 —— 德摩根定律