随笔分类 -  图形学

OpenGL、DirectX
摘要:原帖地址:http://www.cnblogs.com/gongminmin/archive/2011/07/15/2107290.html多年来,在论坛和各个网站上不断能看到拿OpenGL和D3D进行比较的帖子和文章。他们经常制造很多谜思,使得初学者和一些从业人员对 OpenGL和D3D产生了各种各样的流言。有人说,OpenGL直接调到驱动,性能高于D3D。有人说,Shader都得写两套,很麻烦。有人说,OpenGL和D3D在底层有很多区别,而且不可设置。有人说,图形引擎如果要兼容两者,就只能取其功能的交集,最后还不如任何一种API。真的么?本文试图:找出现代OpenGL和D3D的共通之处归 阅读全文
posted @ 2012-09-09 19:58 ActionFG 阅读(805) 评论(0) 推荐(1)
摘要:这些函数可能是新的OpenGL函数,并没有在标准OpenGL库中实现,或者它们是用来扩展已存在的OpenGL函数的功能。和glu、glx和 wgl 一样,这些OpenGL扩展是由硬件厂商和厂商组织开发的。OpenGL扩展(OpenGLExtention)包含了大量的扩展API函 数。 随着硬件的更新,硬件厂商首先向SGI申请登记新的扩展,编写规格说明书(specification)。然后按照说明书进行开发扩展程序。不同的 OpenGL实现(OpenGLImplementation)支持的扩展可能不一样,只有随着某一扩展的推广与应用以及硬件技术的提高该扩 展才会在所有的Open... 阅读全文
posted @ 2012-09-09 19:53 ActionFG 阅读(359) 评论(0) 推荐(0)
摘要:1、D3DXCompileShaderFromFile编译shader文件时,提示E_Fail(shader文件确定无错)答:可能是因为新版本的SDK默认使用DX10的HLSL编辑器引擎的问题,如果是这种情况,只要在调用D3DXCreateEffectFromFile时 的flag参数里面加上3DXSHADER_USE_LEGACY_D3DX9_31_DLL这个值就可以了。DX SDK的文档里面有说的,在D3DXSHADER Flags这个主题里面。 不过说的很隐晦,要两个地方结合起来看: 1)D3DXCreateEffectFromFile 函数对Flag... 阅读全文
posted @ 2012-09-09 19:52 ActionFG 阅读(1161) 评论(0) 推荐(0)
摘要:基本贴图:TextureCube m_EnvCubeMap;隐形:额外参数:背景贴图 m_backgroundTexture;实现基本原理:// invisible pervasion vec4 fragColor = reflectColor; fragColor += vec4(g_Time / 10.0); fragColor = min(fragColor,1.0); float damn = pow(fragColor.r, 50.0) * (1.0 - fragColor.r) * 120.0; vec4 edgeColor = abs(vec4(no... 阅读全文
posted @ 2012-09-09 19:51 ActionFG 阅读(425) 评论(0) 推荐(0)
摘要:DirectX 9:(转自clayman博客)可以在战魂的blog可以下到完整的大图。以下三张是Wolfgang Engel大师制作的,因为FQ才能看到,所以转过来了DirectX 10:DirectX 11:DirectComputer: 阅读全文
posted @ 2012-09-09 18:01 ActionFG 阅读(716) 评论(0) 推荐(0)
摘要:一、基础技术 将光源作为相机,渲染场景,将lightWorldViewProjectPos——处于光源相机透视坐标系下的 z/w 值写入深度图中 注意此时光源相机的projectMatrix应为: D3DXMatrixPerspectiveFovLH(&mLightProjection, D3DX_PI / 2, 1, 0.01, 4000); 采用正常相机,利用深度图再次渲染场景。 将此... 阅读全文
posted @ 2012-05-17 22:21 ActionFG 阅读(321) 评论(0) 推荐(0)
摘要:from cywater:传统Z-Test其实是发生在PS之后的,因此仅仅依靠Z-Test并不能加快多少渲染速度。而EZC则发生在光栅化之后,调用PS之前。EZC会提前对深度进行比较,如果测试通过(Z-Func),则执行PS,否则跳过此片段/像素(fragment/pixel)。不过要注意的是,在PS中不能修改深度值,否则EZC会被禁用。这样,在整个流水线阶段,深度比较发生了2次,一次是EZC,一次是传统Z-Test(注: 区别可能在于EZC无法写入深度)。除了利用EZC帮助传统Z-Test加速之外(硬件自动调用,我称其为隐式用法),目前还有2个显示引申用法:一个类似于Deferred Sha 阅读全文
posted @ 2012-02-06 11:41 ActionFG 阅读(2243) 评论(1) 推荐(1)
摘要:Depth Buffer 1、Learning to Love your Z-bufferIntroductionOne of the more common OpenGL programming problems that I see concerns the poor precision of the Z buffer.Many of the early 3D adaptors for the PC have a 16 bit Z buffer, some others have 24 bits - and the very best have 32 bits. If you are lu 阅读全文
posted @ 2012-02-06 11:39 ActionFG 阅读(664) 评论(0) 推荐(0)
摘要:1、It is expected that graphics hardware will have a small number of fixed vector locations for passing vertex inputs. Therefore, the OpenGL Shading language defines each non-matrix input variable as taking up one such vector location. There is an implementation dependent limit on the number of locat 阅读全文
posted @ 2012-02-06 11:38 ActionFG 阅读(591) 评论(0) 推荐(0)