上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 13 下一页
摘要: 历时两年开发的3D游戏引擎终于演示了,也算是对这两年工作的一个总结。 只是觉得特别别扭的就是演示会上的不善言辞,很多东西都没有说清楚。但还好各位观众都比较满意. 不知不觉半年多没写博客了,也不太习惯啰嗦,上几个图留作记念吧。 场景编辑器 模型材质编辑器 特效编辑器 DEMO截图 感谢公司给了我们机会,让我们能开开心心地造轮子。也感... 阅读全文
posted @ 2011-10-10 21:15 麒麟子MrKylin 阅读(592) 评论(2) 推荐(0) 编辑
摘要: 今天做完了光照提交,被法线问题狠狠地纠结了两个小时。现在想来,自己真是很2. 材质系统雏形算是有了,支持FPP和SHADER、材质动画、XML加载。算下来,这系统也做得够久了,把所有时间算起来,估计也有6人*月的样子。反复修改好几次,这次算是在使用上有点长进。其间也收集了不少值得注意的问题。 这些问题在OGRE,Torque等源码里都有所注释,感觉开源代码最大的好处就是注释完整。比许多家酿的东西要好。(至少好认。。。)随笔记录的一些注意事项,贴在此处以备忘在D3D和SM1中.常量总是会被打包成4元素大小. 因此. 在SM1中.我们只能使用INT4或FLOAT4的设置方式.在HLSL中.如果使用 阅读全文
posted @ 2011-03-15 16:10 麒麟子MrKylin 阅读(421) 评论(1) 推荐(1) 编辑
摘要: 一直在关注这个东西,最近忙里偷闲,深入地了解了一下。 首先,我们说说延迟渲染的好处。毕竟一个东西的产生,是为了解决当前已有的东西不能解决的问题。 Deferred Shading Tutorial下载上面的文章很好地讨论了采用传统着色方案所需要面对的问题。主要是下面两种情况。 而对于延迟着色的第一个好处,就是可以将光照处理对物体渲染的开销由 M*N 变为 M+N (其中M为物体数目,N为光源数目) 延迟着色的一般框架图如下: 延迟着色的好处 而延迟着色面临的最大问题就是透明处理另外,延迟着色主要得益于MRT(Multi Render Target).因为,MRT的限制即是延迟着色本身的限制,D 阅读全文
posted @ 2011-03-13 11:54 麒麟子MrKylin 阅读(745) 评论(0) 推荐(1) 编辑
摘要: From http://www.gamedev.net/topic/435995-would-it-be-faster-to-batch-setvertexpixelshaderconstant-calls/Copy the content here for fear that the link is invalide someday.------------------------------------------------------------Kimani:So I would imagine the API call I make most often is SetVertexSh 阅读全文
posted @ 2011-02-12 18:45 麒麟子MrKylin 阅读(367) 评论(0) 推荐(0) 编辑
摘要: New year is coming again.I think that I should type some words on my blog as usual to mark these special days. so it can make me remmber these days af 阅读全文
posted @ 2011-02-07 01:12 麒麟子MrKylin 阅读(362) 评论(0) 推荐(0) 编辑
摘要: From Auther's Blog (English):http://www.drdobbs.com/blog/archives/2010/09/overlooked_esse.html;jsessionid=ZCDFT154FWF4LQE1GHRSKHWATMY32JVNFrom ChinaUnix (Chinese):http://tech.chinaunix.net/a2010/0925/1107/000001107301.shtmlWhat I have got from this article. 1、Using a Profiler:Using a profiler to fin 阅读全文
posted @ 2011-02-07 00:10 麒麟子MrKylin 阅读(378) 评论(0) 推荐(0) 编辑
摘要: The behavior of shader constants has changed between Direct3D 8 and Direct3D 9. For Direct3D 9, constants set with defx assign values to the shader constant space. The lifetime of a constant declared with defx is confined to the execution of that shader only. Conversely, constants set using the APIs SetXXXShaderConstantX initialize constants in global space. Constants in global space are not copied to local space (visible to the shader) until SetxxxShaderConstants is called. For Direct3D 8, 阅读全文
posted @ 2011-01-28 11:26 麒麟子MrKylin 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 为一个任意网格模型计算其切线空间的基本向量(即切线空间的T B N三个向量) Modern bump mapping (also known as normal mapping) requires that tangent plane basis vectors be calculated for each vertex in a mesh. This article presents the theory behind the computation of per-vertex tangent spaces for an arbitrary triangle mesh and provides source code that implements the proper mathematics. 现在的bump mapping(或者normal mapping)需要每个顶点的切面的基本向量。这篇文章描述了逐顶点计算任意三角模型的切线空间原理,并且提供了实现这个数学理论的源代码。 阅读全文
posted @ 2011-01-25 20:36 麒麟子MrKylin 阅读(1008) 评论(0) 推荐(1) 编辑
摘要: 一直没玩台服,国服也停留在72级。 成都的天气一天天严峻,更是不想动了,于是用NVPerfHUD挂了下WOW,看看它到底啥样。用NVPerfHUD挂程序需要被挂的程序自身支持,但是网上有一个老兄写的一个NVPerfHUD Any程序可以帮你完成这个功能。对大多数D9的都有效。除非本身做了破解。给大家这个链接,自己去解决个人问题。http://www.thecodeway.com/blog/?p=433完美时空的引擎很不错,依然坚挺地用着D8。其实挺想挂来看看的,可惜市面上主流的工具都不支持D8,只有D9以及以后的版本。WOW在CTM的版本中升级了它的渲染引擎,光从水面和火焰就看得出来。 但WO 阅读全文
posted @ 2011-01-23 21:54 麒麟子MrKylin 阅读(2332) 评论(10) 推荐(7) 编辑
摘要: 由下面几个文章引发的欲望,让我自己也试着实现了一个基于2D的骨骼动画。 一篇讲述骨骼动画数学运算的文章 http://www.cnblogs.com/neoragex2002/archive/2007/09/13/891945.html 两篇讲述骨骼动画原理和实现的文章 一篇也是用的2D,老外的那篇用的是DX http://www.cppblog.com/Leaf/archive/2010/12/31/137818.html 空明流转用C#写的一个,当然也可以下载源码。只是在他的BLOG中,他未解释任何东西。并且我也未曾下载任何源码,不知是否源码中有文档 http://www.cppblog.com/lingjingqiu/archive/2008/06/07/52463.aspx 很不爽的是,许多例子或原理讲的时候没有带旋转。 其实那才是重头戏。 空明流转的貌似有旋转,可惜C#我也看不懂。还不如自己来一个。 为了迎合广大人民群众的取向,先上图和上码。 源码下载地址 (所 阅读全文
posted @ 2011-01-14 00:25 麒麟子MrKylin 阅读(2926) 评论(0) 推荐(1) 编辑
摘要: 我不是Shader帝,虽然知道Shader怎么写,但一直没仔细研究过。最近蛋疼至极,研究了下RenderMonkey,于是抽着几个看着比较有趣的效果做了一下。先前的模型贴花http://www.cppblog.com/Leaf/archive/2011/01/07/138093.html和CUBE MAP http://www.cppblog.com/Leaf/archive/2011/01/07/138106.html就是此次蛋疼期的产物之一。还是先围观,上图再说 本次要蛋疼的是折射和反射。反射和折射通常用于增加场景真实感。由于其代价昂贵(通常是要将场景多渲染两次为代价)。因此在实际的游戏 阅读全文
posted @ 2011-01-08 22:33 麒麟子MrKylin 阅读(2041) 评论(1) 推荐(1) 编辑
摘要: 其基本原理很多例子上有讲到。下面给出一些比较合适的链接 http://developer.nvidia.com/object/cube_map_ogl_tutorial.html NVIDIA官网上的 Opengl Cube texture mapping http://www.zwqxin.com/archives/shaderglsl/review-cube-mapping-shader.html 某位兄弟的个人BLOG。 以上两位都适合OPENGL控。 本文给出一个DX HLSL例子。并解释了反射方向计算的数学模型。希望能给大家一定的帮助。 CUBE映射主要分为两步: 一、在VS中根据法线和观察位置计算反射方向,并且得到观察空间中的反射方向。 反射方向有两种计算方法。 1、在世界坐标系空间中计算,然后再将计算到的反射方向转换到观察空间。 这要求我们转入观察位置。 2、在观察空间中进行计算,此时观察位置已经为0,0,0,于是不需要传入观察位置,并且得到的向量即为所求。本文的代码采用此种方式。 二、用这个反射方向在PS中对CUBE纹理进行采样。 阅读全文
posted @ 2011-01-07 13:36 麒麟子MrKylin 阅读(2689) 评论(5) 推荐(1) 编辑
摘要: 一、投影纹理进行模型贴花时,主要是进行三角面剔除,使在渲染贴花时,提交最少的三角面。 二、在贴花PASS中,需要将全局混合开启,并设置相应的SRCBLEND(SRC_ALPHA)和DESTBLEND(DEST_ALPHA)值。括号内为我用的值。 当然,如果你不想让贴花与场景(模型)混合,则可以不开启。 三、请注意纹理的寻址方式以及纹理边缘的ALPHA情况。 若纹理边缘ALPHA不为0,则可以手工进行裁剪。 四、本文仅是采用了固定的投影方向和SHADER内部定义变量的方式来进行贴花渲染。 并且,并未进行模型三角面剔除。所以若要使用,则需要注意第一个问题。 五、本文灵感来源于此贴:http://forums.create.msdn.com/forums/p/34339/198791.aspx 六、支持邮件交流:BoYueGame#Gmail#com 阅读全文
posted @ 2011-01-07 00:38 麒麟子MrKylin 阅读(3399) 评论(2) 推荐(1) 编辑
摘要: 个人觉得,对于一个东西,理解其根本才是王道。就拿骨骼动画来说吧,DX的例子虽然可以让人清楚地知道骨骼动画是怎么动作的,并且知道了有.X这种骨骼动画文件。 但着手时,依然会被DX那神奇的各种框架弄得晕头转向。 并且M$向来是想人变成213,而非学者。 在网上一搜Skinned Mesh, 会出来一大堆围绕着DX例子的解释,翻译,或者什么什么的。 而下面这些文章,则充分讲述了其基本原理。 你可以离开DX,离开OPENGL而全神惯注地集中思考骨骼动画到底是什么。 Skinned Mesh原理解析和一个最简单的实现示例 http://blog.csdn.net/n5/archive/2008/10/ 阅读全文
posted @ 2010-12-31 23:00 麒麟子MrKylin 阅读(643) 评论(0) 推荐(0) 编辑
摘要: 本文主要内容有: 一、部分背景内容 二、HLSL中的row-major matrix picking and column-major matrix picking 三、MUL规则 四、观察矩阵的另类解释和TBN空间的类推 五、HLSL中矩阵的构造(为什么WorldToTargentSpaceMatrix要左乘LightDir) 阅读全文
posted @ 2010-12-28 00:09 麒麟子MrKylin 阅读(1334) 评论(0) 推荐(1) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 13 下一页