我能想出的方案是
1,使用Direct3D创建设备,然后锁住backbuffer,直接进行像素填充。不过划线什么的函数都要自己写了。
2,使用Direct3D创建设备,然后锁住backbuffer,获取HDC,用GDI画。但是看了下帮助,要成功获取HDC限制颇多,尤其是表面格式不能支持alpha通道最老火。
3,画到DirectDraw的surface上。
4,不用DirectX,就用GDI画算了。
应该有很棒的方法才是吧,大家指教一下吧,谢谢了。
10 个解决方案
#1
用gdi+做好了,各种特效都比较容易些。
#2
你是指不使用DirectX吗?
#3
用DirectDraw画吧,D3D和OpenGl最后都是用DirectDraw把图像画到屏幕上的。
#4
用GDI画,还是自己填像素呢?
#5
抱歉,这个我也不知道,但是猜想应该是自己操作像素,使用GDI的话,可能造成额外的性能损失。
#6
强烈推荐用DirectDraw,因为它的速度比GDI快多了,就像《3D游戏编程大师技巧》的作者所做的。
#7
倒,他建立了一个库来做的,要完成那个库还要看他写的windows那本才行啊。
用GDI+会不会快点?
#8
引用:
倒,他建立了一个库来做的,要完成那个库还要看他写的windows那本才行啊。
用GDI+会不会快点?
================================
那你就先把光栅化部分封装成GDI的试试,如果速度实在忍受不了,再换成用DDraw写的bai
记得,《3D游戏。。》里作者是用了个库,但那只封装了一些线、多边形等的光栅化函数,内容并不多,而且自己不用的也不用去写。而真正内容多的,还是用软件算法来模拟整个3D渲染管道。
倒,他建立了一个库来做的,要完成那个库还要看他写的windows那本才行啊。
用GDI+会不会快点?
================================
那你就先把光栅化部分封装成GDI的试试,如果速度实在忍受不了,再换成用DDraw写的bai
记得,《3D游戏。。》里作者是用了个库,但那只封装了一些线、多边形等的光栅化函数,内容并不多,而且自己不用的也不用去写。而真正内容多的,还是用软件算法来模拟整个3D渲染管道。
#9
而真正内容多的,还是用软件算法来模拟整个3D渲染管道。
用软件算法模拟是什么意思啊?
#10
就是原来三维管道的实现可以通过D3D、OpenGL等API来实现,现在相当于写一遍类似于那些API的函数
#1
用gdi+做好了,各种特效都比较容易些。
#2
你是指不使用DirectX吗?
#3
用DirectDraw画吧,D3D和OpenGl最后都是用DirectDraw把图像画到屏幕上的。
#4
用GDI画,还是自己填像素呢?
#5
抱歉,这个我也不知道,但是猜想应该是自己操作像素,使用GDI的话,可能造成额外的性能损失。
#6
强烈推荐用DirectDraw,因为它的速度比GDI快多了,就像《3D游戏编程大师技巧》的作者所做的。
#7
倒,他建立了一个库来做的,要完成那个库还要看他写的windows那本才行啊。
用GDI+会不会快点?
#8
引用:
倒,他建立了一个库来做的,要完成那个库还要看他写的windows那本才行啊。
用GDI+会不会快点?
================================
那你就先把光栅化部分封装成GDI的试试,如果速度实在忍受不了,再换成用DDraw写的bai
记得,《3D游戏。。》里作者是用了个库,但那只封装了一些线、多边形等的光栅化函数,内容并不多,而且自己不用的也不用去写。而真正内容多的,还是用软件算法来模拟整个3D渲染管道。
倒,他建立了一个库来做的,要完成那个库还要看他写的windows那本才行啊。
用GDI+会不会快点?
================================
那你就先把光栅化部分封装成GDI的试试,如果速度实在忍受不了,再换成用DDraw写的bai
记得,《3D游戏。。》里作者是用了个库,但那只封装了一些线、多边形等的光栅化函数,内容并不多,而且自己不用的也不用去写。而真正内容多的,还是用软件算法来模拟整个3D渲染管道。
#9
而真正内容多的,还是用软件算法来模拟整个3D渲染管道。
用软件算法模拟是什么意思啊?
#10
就是原来三维管道的实现可以通过D3D、OpenGL等API来实现,现在相当于写一遍类似于那些API的函数