美文网首页
文明5渲染分析-1树林

文明5渲染分析-1树林

作者: 燃野 | 来源:发表于2016-04-16 12:39 被阅读0次

dx9下的植被渲染

乍一看Geometry里没多少三角形,在屏幕上却渲染出了很多个,而且位置都有很大差异。仔细看下Geometry就能发现起始里面有720个三角形,但这个模型看起来也就16个三角形,剩下的哪去了?

看一下vs

有个treeLocation数组,再看下面红色部分,这是类似骨骼动画的方式来做的。因为视角固定,所以一个VewProjMatrix就够了,每个位置也只要一个Vector4,这么看还是很省寄存器的。虽然这个shader写的用了90个位置,但其实寄存器有256个,用到200多个位置也不是问题,只是这个应用环境下没用那么多。红框内shader是位置变化意思就是

outputPosition = (vertexPosition + treeLocation) * ViewProjMatrix

再看开头的问题,720个三角形分成了位置完全一样的45份(45=720/16)。45刚好是90的一半,一份模型能分成2部分,宽一些的矩形和窄一些的矩形,这俩骨骼索引不同的,每份占2个索引。

再看贴图和渲染结果,虽然每份位置相同,但是uv是不一样的,可以增加丰富程度,这应该就是不用Geometry Instancing API的原因吧。其实这种方法就是GPU Gems2 chapter3 Inside Geometry Instancing中提到的Vertex constants instancing

总结

1,用做骨骼动画的方式实现一次drawcall渲染一块树林,每个树的位置可以动态设置,树片的模型和uv都可以有差异。如果不需要每个树片有差异,则可以使用Geometry Instancing API.

2,因为视角固定,树片都以一个方向面向相机,可以优化为只用一个ViewProjMatrix,且每个treeLocation只占vector4

相关文章

  • 文明5渲染分析-1树林

    dx9下的植被渲染 乍一看Geometry里没多少三角形,在屏幕上却渲染出了很多个,而且位置都有很大差异。仔细看下...

  • 改标题

    学员信息:5班-1组-23号-树林 小作业5: 1、标题修改:将标题修改成热点+内容的组合形式 2、价值分析:根据...

  • 第三章人类修-炼史初述7

    通过前面三大文明-修炼者极限比例的分析。 我们看到了结论: 印度文明远低于5% 一神教文明基本在5% 华夏文明远超...

  • 深入Weex系列(七)之Adapter组件源码解析

    1、前言 在上一篇文章《深入Weex系列(六)Weex渲染流程分析》中我们分析了Weex的渲染流程,但是实际上串起...

  • waterfall瀑布流布局+动态渲染

    瀑布流典型网站 花瓣网、堆糖 [目录] 瀑布流布局原理大体思路具体思路 插件封装(5步) 动态渲染需求分析渲染第一...

  • three.js基础

    1.三大组建 2.渲染器renderer 3.场景 4.渲染器 5.渲染循环 渲染有两种方式:实时渲染和离线渲染 ...

  • Metal Camera开发4:渲染到CVPixelBuffer

    Metal Camera开发1:读取渲染结果生成UIImage第5节:读取Metal渲染结果并生成UIImage介...

  • 离屏渲染的原理和分析

    1.常见触发离屏渲染的情况 在分析离屏渲染的原因之前先介绍几种常见的触发离屏渲染的情况 使⽤了 mask (遮罩...

  • 90-15  啥是好图

    图片的作用: 一、渲染氛围 渲染气氛的用法: 1、 底图 案例分析:为了显示主题的轻盈,用羽毛作为底图,烘托了对主...

  • 从地下生长起来的吉他

    1、加入树林背景。 2、调节好树林高度,底部加上土石纹理。 3、树林地面加上青草。 4、草地顶部增加一些高光。 5...

网友评论

      本文标题:文明5渲染分析-1树林

      本文链接:https://www.haomeiwen.com/subject/wwanlttx.html