在比较了多种多线程引擎框架后,我最终的设计类似double-buffer方案,把引擎模块划分为3个线程:Io线程,逻辑线程,渲染线程,对于我的引擎的目标平台来说,已经足够,实际上,我针对的是2-3核的CPU,再多的线程一方面会使得处理逻辑更加复杂,另一方面也不会带来效率的提升(甚至会降低),anyway,我已经这么做了,把渲染单独做为一个线程,逻辑线程每帧向渲染线程提交渲染数据上下文,在帧开始前进行一次同步(等待渲染线程完成上一帧的渲染),原理很简单,但真正做起来还是有不少细节需要仔细考虑的。。总的来说还是比较顺利,这要归功于写代码前做了足够多的设计工作,我甚至为此通读了Nebula3引擎的代码,整理了一份PPT并在公司内部讲解过。
下一步工作该是把整个Graphics的高层框架搭好了
posted @
2010-06-22 20:36 清風 阅读(621) |
评论 (2) |
编辑 收藏
摘要: 忽然发现好像满世界的人都在自己写3D Engine,搞得我都不好意思说我也在写Engine了- -#。。。这会是个庞大和艰巨的任务,因为我对它的定位是游戏引擎而不是单纯的图形引擎,算下从我刚开始工作到现在的时间也不短了,一直在跟引擎打交道,既参与过自主引擎的开发也用过商业引擎...
阅读全文
posted @
2010-05-03 17:59 清風 阅读(646) |
评论 (5) |
编辑 收藏
摘要: 最近想研究下GPU对地形渲染的性能优化,google到了Gpu gems2的一篇文章:
,链接:http://research.microsoft.com/en-us/um/people/hoppe/gpugcm.pdf,扫了一遍,看懂了大概,把要点记于此:
阅读全文
posted @
2010-03-19 14:33 清風 阅读(2077) |
评论 (0) |
编辑 收藏
摘要: 翻译只求意思准确,省略了一些不太相关的内容,如有错误烦请指正,原文:http://developer.download.nvidia.com/whitepapers/2007/SDK10/VarianceShadowMapping.pdf
阅读全文
posted @
2009-10-20 22:52 清風 阅读(4881) |
评论 (8) |
编辑 收藏
摘要: 虽然还有不少问题,但已经不想再写下去了,这两天晚上写了几个简单的demo作为sample,一起发。
代码在vs2005下编译通过,所有代码仅做学习交流之用,请勿用于其他用途,谢谢!
阅读全文
posted @
2009-09-30 01:32 清風 阅读(3607) |
评论 (14) |
编辑 收藏
摘要: 光照:
再次修改了公式,把镜面反射的点积值也映射到了0~1的范围内,这样就不会再出现有一团黑的情况了:I = Ia * Ka + Id * Kd * (L dot N + 1.0) * 0.5 + Is * Ks * pow((R dot V + 1.0) * 0.5,n)...
阅读全文
posted @
2009-09-26 20:23 清風 阅读(2018) |
评论 (0) |
编辑 收藏
摘要: 采用了最简单的局部光照模型,用opengl的光照方程:I = Ia * Ka + Id * Kd * (L dot N) + Is * Ks * pow((R dot V),n)
阅读全文
posted @
2009-09-06 00:23 清風 阅读(2294) |
评论 (2) |
编辑 收藏
摘要: 大约在一个多星期前开始写一个软渲染引擎,类似D3D的一个东西,只不过硬件处理的部分全部换成软件处理,对图形学有点了解的人应该都知道是个什么玩意。同样,这是个业余时间进行的项目,目的是为了总结一些以前学过的很基础的知识。我并没有打算给自己定一个很详细的计划去完成它,主要是不想把它变成一种任务,那样会很累(你有压力,我有压力,没事还是别再给自己增加什么负担了- -)
阅读全文
posted @
2009-08-23 12:31 清風 阅读(3035) |
评论 (10) |
编辑 收藏