
3D图形
claien
这个作者很懒,什么都没留下…
展开
-
Z缓冲、模板缓冲、阴影技术
<br /> Z缓冲:物体表面顶点都对应一个Z深度值,反映改动距离视点的远近。屏幕像素的的颜色值有对应顶点的颜色确定,而且最近点的颜色值将替代对应较远处点的颜色值。Z值大小比较过程是应用了Z深度测试比较渲染状态D2DRS_ZFUNC的默认值D3DCMP_LESSEQUAL,当Z值小于或等于当前像素点对应的顶点Z值时,希尔较小的职工Z值。<br /> 模板缓冲(Stencil)板或模板缓冲区:模板板缓冲区与Z—BuPo缓冲区实际上分占同一块物理内存的不同bit位。这两个缓冲区都可决定后台绘图表面的像素颜色值,原创 2010-08-27 14:00:00 · 1483 阅读 · 0 评论 -
次时代引擎技术一览
API: Driectx 11.0 & 10 Driectx 9.0CTexture Resolution(材质解析度) :16384*16384Quadcore-Multithreading(多核心多线程) √Tesselation(曲面细分) √Deferred shading(延迟渲染) √Live Create(编辑器动态创建) √Ambient Oc转载 2011-11-24 14:30:38 · 1342 阅读 · 0 评论 -
DXGI Overview
DXGI OverviewMicrosoft DirectX Graphics Infrastructure (DXGI) recognizes that some parts of graphics evolve more slowly than others. The primary goal of DXGI is to manage low-level tasks that ca转载 2013-07-22 15:04:05 · 2330 阅读 · 0 评论 -
对骨骼动画的一点理解
骨骼:将一个Mesh抽象理解成有许多个部分组成,例如人的肩,大臂,小臂,手等。 骨骼是表示当前Mesh等蒙皮数据的原点在父矩阵的位置,是抽象存在的。RootMatrix:所用骨骼的最终父节点。通过他统一了所有兄弟骨骼在世界中的位置。TransformMatrix:表示子骨骼对父骨骼的偏移参考姿势:骨骼动画在Max导出时有一个参考姿势,例如站立的姿势。Offs原创 2011-12-11 19:36:02 · 1798 阅读 · 1 评论 -
UnrealEngine3-渲染构架
OverviewThis page covers all areas of the rendering subsystem in Unreal Engine 3.Getting StartedThere's a lot of rendering code in UE3 so it's hard to get a quick high level view of what's going on. A转载 2013-10-20 18:58:32 · 5035 阅读 · 1 评论 -
虚幻3引擎-多线程渲染机制
Threaded RenderingDocument Changelog: Created by Daniel Wright.Threaded RenderingOverviewRendering threadDevelopment approachThread specific data structuresPerformanc转载 2013-11-03 21:28:06 · 2135 阅读 · 0 评论 -
Performance Optimizations (Direct3D 9)
Performance Optimizations (Direct3D 9)General Performance Tips1. Clear only when you must. 2. Minimize state changes and group the remaining state changes. 3. Use smaller textures, if you can do so.原创 2014-02-11 21:20:30 · 1323 阅读 · 0 评论 -
GPU瓶颈
关于是否是GPU瓶颈还是CPU瓶颈,NV的paper中说调整CPU或GPU的时钟,改变频率,来检测性能瓶颈到底来自那里。这个方法还需要借助辅助工具,一般游戏逻辑帧和图形帧是分离的,可以改变逻辑帧和图形帧的频率试试。看看帧数是否明显降低。或者忽略所有的Draw Calls看看fps。 显存位宽是显存在一个时钟周期内所能传送数据的位数,表示瞬间所能传输的数据量。是显存和芯片之间交换原创 2014-04-28 20:28:50 · 2429 阅读 · 0 评论 -
GI概念总结
GI就是以下的两种解释:global illumination 全局照明indirect illumination 间接照明模拟出光线追踪的效果实现方法:1.ssao系列 2.lightmap、辐射度3.PBRT实时GI:LPV cryengineSVO ue4KlayGE中用到的:VPL MSII RSM(reflective shadow map)原创 2013-12-03 11:45:50 · 3924 阅读 · 0 评论 -
CE3和UE3在多线程渲染方面的简单对比
http://www.cnblogs.com/lancidie/archive/2011/10/21/2220553.html由于刚刚开始看CE3,对很多细节都还不是很熟,所以下面的有的针对CE3的描述可能是不准确的,在此先表歉意。 CE3和UE3都支持多线程渲染,即有一个单独的渲染线程,当然它们都可以通过简单的办法来开关,CE3通过r_multithreaded的值来控制转载 2015-02-24 08:03:38 · 828 阅读 · 0 评论 -
光照模型
1. Lambert模型 理想漫反射模型,各个方向一样。2.Phong(1975)[1] 经验模型,R和V的夹角决定镜面高光的强度。3.Blinn-Phong(1977)[2] 引入了半角向量的概念,对Phong模型进行了改进,镜面高光由n和h的夹角决定。转载 2015-02-24 08:09:40 · 1569 阅读 · 0 评论 -
hlsl函数 ddx ddy
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl转载 2016-10-30 11:31:27 · 4916 阅读 · 0 评论 -
PS常用操作
由于我们经常用贴图通道来记录数据,在shader中进行计算,这部分的数据和程序密切相关,所以学习点PS也是非常必要的。 总结一些常用操作,以后用到新的操作不断更新。通道复制: 选择通道 ->Ctrl A全选 ->Ctrl C复制 -> Ctrl V粘贴到某通道 或粘贴到新建通道。Ctrl M 调出面板 调整输入输出曲线关系, 例如:值取反Ctrl I 该通道反相原创 2017-01-18 08:19:32 · 557 阅读 · 0 评论 -
how much does a tex2D/texCUBE cost?
how much does a tex2D/texCUBE cost? https://forum.unity.com/threads/how-much-does-a-tex2d-texcube-cost.182469/移动平台纹理采样比较昂贵。1. 效率采样在移动平台相当于几个到几十个简单的数学运算, 在PC上更高,一次采样相当于几个到上百个数学运算。 不建议用texture...原创 2018-08-03 18:32:22 · 513 阅读 · 0 评论 -
PRT and Irradiance Volume different
PRT and Irradiance Volumehttps://www.gamedev.net/forums/topic/442871-prt-and-irradiance-volume/ Posted April 10, 2007Yes PRT and Irradiance Volumes are very similar, both are interested in modell...原创 2018-08-06 18:39:30 · 454 阅读 · 0 评论 -
D3D基本知识点
设备丢失状态:程序在全屏状态下失去键盘焦点(全屏时按下Alt+Tab或Win+D键或Win+L键)其他程序进入全屏状态电源管理事件,比如屏保等Present: EndScene提交处理到显卡,如果还有没处理完成的指令,导致Present等待时间加长。 AA等操作导致Present时间加长 往往EndScene和Present之间有些Updata,来利用cp原创 2013-05-06 07:14:54 · 750 阅读 · 0 评论 -
OIT(Order-independent Transparent)顺序无关的透明
1.Alpha-to-coverage(SV_Coverage)2.depth peeling 3.stencil routed k-buffer4.Stencil Routed A-Bufferhttp://www.cnblogs.com/lancidie/archive/2011/08/18/2144797.html原创 2013-06-14 15:49:17 · 3003 阅读 · 0 评论 -
Light Pre-Pass Renderer
Light Pre-Pass Renderer In June last year I had an idea for a new rendering design. I call it light pre-pass renderer.The idea is to fill up a Z buffer first and also store normals in a render t转载 2013-06-06 20:55:52 · 1407 阅读 · 0 评论 -
C++各大有名库的介绍——科学计算
在 C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库的数量非常转载 2011-10-14 20:36:22 · 498 阅读 · 0 评论 -
CPU GPU设计工作原理
要说到设计的复杂程度,那还是CPU了!这个不用讨论,很简单的道理你看看显卡芯片的更新速度和CPU的更新速度就可见一斑了。还是简单说说他们的设计原理吧。CPU: 但是,现在我要问一句:“什么是CPU?”我相信大多数人并不知道什么是CPU。当然,你可以回答CPU是中央处理器,或者来一句英文: Central Processing Unit。是的,没错。但,RISC和CISC是什么?什转载 2011-11-13 08:18:22 · 5652 阅读 · 0 评论 -
Shadowmap
SM: Shadow MapsASM: Adaptive Shadow MapsASM/AFSM: Alias-free Shadow MapsASSM: High-Quality Adaptive Soft Shadow MappingBSM: Bitmap Shadow MapsCSM: Cascaded Shadow MapsCSM: Coherent Shadow转载 2012-08-03 14:13:00 · 2228 阅读 · 0 评论 -
OGRE——渲染大量物体,批次(batch)
OGRE渲染物体,可以把物体作为InstancedGeometry,StaticGeometry,Entity实例来渲染。区别:InstancedGeometry:Pre-transforms and batches up meshes for efficient use as instanced geometry in a scene。也就是说,把所有网格作为一个instance geo转载 2012-09-13 20:43:33 · 745 阅读 · 0 评论 -
《阅读一款3D引擎的方法备忘》
要带着引擎系统所共有的问题去阅读,不要被具体引擎的实现思路牵着走,要思考这个引擎如何实现或绕过(如不考虑低端机)这些必然要面临的问题.首先,最重要的必须,在Debug模式下调试起来一个主场景程序,然后沿着代码流走几遍,在代码里闲逛,生成第一印象,留意基础工具设施类(如字符串内存管理),大约3小时.然后带着如下每一个问题(不分先后)去走流程,走逻辑,弄清引擎的业务处理方法.1.纹理资源是转载 2012-12-02 14:26:24 · 411 阅读 · 0 评论 -
光照计算Shader
struct Mtrl { float4 ambient; float4 diffuse; float4 spec; float specPower; }; struct DirLight { float4 ambient; float4 diffuse; float4 spec; float3 dirW;转载 2012-12-02 14:43:17 · 622 阅读 · 0 评论 -
Normal Mapping
转载:http://blog.sina.com.cn/s/blog_556e97420100smkw.html很久以前研究过Normal Mapping,对其中的Tangent Space(切空间)总是不能理解。花了很长时间,读了很多相关的帖子,才总算搞明白。不过我总觉得,大部分都讲的不是很好,一上来就讲 TBN 变换矩阵的数学推导过程,太抽象。看完以后,还是不明白什么是TBN。至少我不明白,转载 2012-12-02 14:32:44 · 2127 阅读 · 0 评论 -
layer
float fDeltaY ; float CameraHeight; float WorldPosHeight; float fFogTop; float fFogBottom; if(CameraHeight > fFogTop) { if (WorldPosHeight > fFogTop) // { fDeltaY = 0.0f; }转载 2013-04-18 15:31:18 · 508 阅读 · 0 评论 -
shader效率
if 的表达式是uniform变量或常数时是静态分支,是顶点或像素属性时是动态分支.静态的会被优化 而动态的则无法优化所以会非常慢尽量避免在shader中使用if 跟 for(int i = 0; i sm3.0支持动态分支以后,条件短路复杂逻辑明显是加快的。但是在有动态分支以前,因为所有分支都要计算再合并,所以反而因为多了分支而变慢转载 2013-04-18 15:43:29 · 1181 阅读 · 0 评论 -
Z - Fighting 和 Depth-bias
Depth-bias操作在clipping之后进行实施,所以depth-bias对几何clipping没有影响。另外需要注意的是:对一个给定体元(primitive),bias值是一个常量,在进行差值操作之前,它施加在每个顶点上。偏移操作都是32位浮点运算,还有Bias不能施加在点以及线体元上(除了线框模式的线段)。 ********************************转载 2013-05-24 17:14:55 · 2495 阅读 · 0 评论 -
纹理总结
目标一般来说,支持大规模纹理的实现方案应满足如下要求:应支持用一个任意大小纹理的一个小的子集进行全速绘制; 对纹理子集的快速更新与实时绘制可同时进行; 不能导致对场景几何构件的进一步划分或施加其它限制; 加载控制必须是健壮的,并能自动避免在过载情况下的视觉不连续现象; 纹理的表示应当与现有的应用实现无缝集成; 其增加的实现成本相对于现有硬件来说是较小的。 基本思想对于大纹理,由转载 2013-06-09 11:34:01 · 674 阅读 · 0 评论 -
MSAA and HDR
https://www.gamedev.net/forums/topic/583792-msaa-and-hdr/原创 2018-09-05 10:30:46 · 579 阅读 · 0 评论