深度偏移用来解决共面情况下出现闪烁的问题 通过给多边形增加一个z方向深度偏移(depth bias,z_bias),使3D空间的共面多边形看起来好像并不共面,以便它们能够被正确渲染.这种技术是很有用的,例如,我们要渲染投射在墙上的阴影,这时候墙和阴影共面,如果没有深度偏移,先渲染墙,再渲染阴影,由于depth test,阴影可能不能正确显示.我们给墙设置一个深度偏移,使它增大,例如z增加0.01,先渲染墙,再渲染阴影,则墙和阴影可以正确的显示. Depth-bias操作在clipping之后进行…
1. Mesh .SubMesh.SubEntity和Entity 所有的Mesh对象是由SubMesh构成的,每个SubMesh代表了Mesh对象的一部分,该部分只能使用一种Meterial.如果一个Mesh只采用一种Material,那么它可能只包含一个SubMesh. 当基于Mesh创建出一个Entity时,该Entity由多个SubEntity构建而成, SubEntity与Mesh中的SubMesh一一对应.可以通过调用Entity::getSubEntity方法获得SubEntity…
PS:本文写于2017.2.1日,使用版本为4.13.第二次更新时间为2017.3.15增加了四.一些材质编辑器中的奇怪的技巧: 一.前言在Unreal中材质编辑器提供了Custom节点,作为HLSL代码编写接口.以此可以实现更多的效果.虽然使用Custom节点会有若干限制,但是相对的比较方便,适合快速开发.如果遇到限制而导致无法使用Custom解决,此时就需要使用虚幻的RHI(硬件渲染接口)配合USF文件(虚幻着色器文件)来实现,这些我以后可能会写一篇文章来解析吧,如果着急可以参考Wiki上的…
转自:http://www.cnblogs.com/minggoddess/archive/2011/02/19/1958472.html 由于数据保护的需要,一款游戏一般都会有自己独有的资源包,这样做既有利于知识产权的保护,又减少了磁盘碎片的产生.Ogre本身是支持的Zip包的,但Zip包不具要资源保护的特性,随便用个winrar就可以把资源打开并导出,这样就失去了数据保护的意义. 现在假设你的操作资源包的API已经完成,下一步需要集成到OGRE中去,那么该怎么做呢,大致我机械式的列出下面几步…
在其它三维软件中设置好的双面材质导入到unity3d中就失去了效果,不过我们可以通过自定义材质来在unity3d中实现双面材质的效果.步骤如下:1.在资源库中新建一新shader:代码如下: Shader "DoubleSided" {   Properties {      _Color ("Main Color", Color) = (1,1,1,1)      _MainTex ("Base (RGB)", 2D) = "whit…
3.2 合成器Compositor 合成器框架是Ogre用于全屏后处理的API.你可以通过脚本而不是API定义合成器.你可以很容易为视口实例化合成器. 合成器基础 无论是要替换还是要与主渲染窗口混合,实现后处理效果首先是渲染场景到纹理.当场景渲染到纹理后,你可以将其渲染为全屏四边形从而将场景图像推送到片段着色器进行处理.后处理渲染目标可以为最终结果(渲染窗口),也可以是另一个渲染纹理,从而可以对图像实现多次转换.你可以在一对纹理之间多次转换,而不用为每个阶段采用单独的纹理.最后,你可以通过全屏四…
一个渲染通路就是几何问题里的一次渲染:一个带有一整套渲染属性的渲染API的一次调用.一个技术可以包含有1到16个渲染通路,当然,渲染通路用得越多,技术在渲染的时候开销越大. 为了清楚识别使用的到底是哪个渲染通路,渲染通路常常被起个名字,当然,也可以不起,名字并不是必需的.脚本中没有名字的渲染通路将会以渲染通路索引号为名.例如:在一个技术里,第一个渲染通路索引号是index 0,所以,如果脚本中没有对它命名,那么它的名字就是“0”.一个技术中的渲染通路的名字必须是唯一的,否则,最后一个渲染通路的结…
http://www.cppblog.com/richardhe/articles/55722.html 1: 设计初衷 它设计初衷是完全跨平台的.抽象的接口隐藏了平台相关的细节. 它设计初衷是大幅度支持扩展的.支持多种场景类型,独立出平台和3D接口限制. 2: 基本类结构关系 Roo:对象为一切的入口,它负责创建Ogre的所有基础元素,三大基础元素大致包括:场景管理器,绘制系统,资源管理器. 场景管理器:场景节点,动态对象. 资源管理器:资源组管理,资源管理 渲染模块:硬件缓冲区管理,渲染系统…
1 .引言随着计算机可视化.虚拟现实技术的飞速发展,人们对实时真实感渲染以及场景复杂度提出了更高的要求.传统的直接使用底层图形接口如OpenGL.DirectX开发图形应用的模式越来越暴露出开发复杂性大.周期性长.维护困难的缺陷.为此国外出现了许多优秀的三维渲染引擎,比如Delta3D,OGRE,OSG,Unity3d,VTK等.渲染引擎的作用是要优化遍历和显示三维模型.本文主要对OGRE与OSG这两个三维图形渲染引擎做个简单的比较,介绍他们在运行效率.场景管理.功能支持.可扩展性等方面的异同.…
如果在画面中,发现有画面闪烁的问题.那么大多数情况下是z-fighting引起的, 解决方案: 1, 在每个场景中,找到那个MainCamera,然后在Inspector上,找到MainCamera的属性,Clipping Planes,需要做的是尽量放大near的值,尽量减小far的值.根据我的实验结果,同样改动Near值的幅度比Far值的幅度相对来说效果会更好.如Near从1到20可能修正了某个z-fighting,但是Far从1000改到500也还是没有用.这个在实践中可以注意. 2, 如…