• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            實(shí)時(shí)陰影繪制技術(shù)研究

            C++博客 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
              48 Posts :: 20 Stories :: 57 Comments :: 0 Trackbacks

            #

                 摘要: BHRE是由北京航空航天大學(xué)計(jì)算機(jī)學(xué)院虛擬現(xiàn)實(shí)與可視化研究所自主研發(fā)的新一代圖形繪制引擎。

            BHRE使用OpenGL作為底層圖形API,采用CG作為Shader開(kāi)發(fā)語(yǔ)言,在場(chǎng)景組織和狀態(tài)管理的基本數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)上,研發(fā)了包括一系列面向三維游戲、仿真模擬、漫游展示等實(shí)時(shí)三維圖形應(yīng)用的功能。

            * Features
            o 基本3DS模型載入
            o 視點(diǎn)運(yùn)動(dòng)
            o 對(duì)象運(yùn)動(dòng)
            o 裁減算法
            o 天空盒
            o 大規(guī)模地形
            o 三維聲音
            o 碰撞檢測(cè)
            o 霧效果
            o 多光源效果
            o 基于GPU的水波特效
            o Video紋理
            o LOD   閱讀全文
            posted @ 2006-08-02 21:05 苦行僧 閱讀(3130) | 評(píng)論 (17)編輯 收藏

                 摘要:   閱讀全文
            posted @ 2006-06-02 14:02 苦行僧 閱讀(3879) | 評(píng)論 (1)編輯 收藏

                 摘要:   閱讀全文
            posted @ 2006-05-29 15:25 苦行僧 閱讀(1226) | 評(píng)論 (0)編輯 收藏

            2006-5-25

            • 一切為了真實(shí) 物理加速卡之前世今生 技術(shù),物理加速卡,PPU,PhysX [板卡應(yīng)用技巧] IT.com.cn IT世界網(wǎng)-您身邊的數(shù)字專家 #
              PPU的一篇相對(duì)重量級(jí)的文章,涉及到了第一塊PPU的一些技術(shù)細(xì)節(jié)和效果介紹,摘要一些:當(dāng)AGEIA在GDC2005上提出了PPU的 概念,同時(shí)也是第一塊物理加速卡展現(xiàn)在世人的面前。PhysX外型類似目前的顯卡,采用PCI-E/PCI 接口,可兼容絕大部的主流平臺(tái)。它采用TSMC 0.13微米制程,集成的晶體管數(shù)量為1億2千萬(wàn)個(gè),核心尺寸為182平方毫米,要大于目前主流的GPU規(guī)格。而在功率方面,AGEIA宣稱PhysX的 功率非常低,大約只有25W左右。和顯卡一樣,由于要涉及到大規(guī)模的數(shù)據(jù)運(yùn)算和處理,PhysX也搭配了128M的GDDR3顯存,所以說(shuō)物理加速除了沒(méi) 有視頻輸出接口以外,外觀上和顯卡的區(qū)別并不大。 Novodex SDK軟件開(kāi)發(fā)包 ,EPIC的Unreal3.0就采用了PPU技術(shù),直接導(dǎo)致XBOX360對(duì)PPU的使用,PS3也宣布將采用這一先進(jìn)技術(shù)。已經(jīng)看到以及將要看到的使 用PPU的游戲包括:Rise of Nations:Rise of Legends(國(guó)家的崛起:崛起傳奇)、Ghost Recon 3(幽靈行動(dòng) 3)、City of Villians ,Bet on Soldier(賭命戰(zhàn)士) 。目前PPU的價(jià)格大約是100-400美刀,略有點(diǎn)貴,但是相信隨著技術(shù)的進(jìn)步和市場(chǎng)競(jìng)爭(zhēng)的加劇,比然會(huì)引起一輪革命。
            • AGEIA #
              Ageia(奧加)的官方網(wǎng)站
            • Ageia PhysX Card - Cheng's Command Center - by Cheng #
              這一篇PPU的文章,可以加深一下印象,簡(jiǎn)單易于理解。
            • 真實(shí)游戲場(chǎng)景,PPU物理卡效果驚人!——家用電腦-->硬件廣場(chǎng)-->硬件最前線 #
              此文是另外一篇介紹PPU的文章,通過(guò)這篇文章我對(duì)PPU有了一個(gè)直觀的了解,想來(lái)也算是虛擬現(xiàn)實(shí)領(lǐng)域的一種發(fā)展方向,所以有機(jī)會(huì)還是了解一下吧。
            • Havok公開(kāi)指責(zé)PPU物理加速卡--Mydrivers.com驅(qū)動(dòng)之家新聞中心 #
              今天在BBS上看到Ageia在找人,看到PPU的字樣,想到原來(lái)大牛師兄曾經(jīng)提到過(guò)該名次,還玩了一款游戲,順便查了一下,發(fā)現(xiàn)幾篇文章。此文是其中一篇。
            posted @ 2006-05-25 22:28 苦行僧 閱讀(1179) | 評(píng)論 (0)編輯 收藏

            2006-5-24

            2006-5-22

            • #pragma用法 #
              #pragma是總體來(lái)說(shuō)在程序里邊而不是在IDE里邊指定編譯選項(xiàng)的做法
            posted @ 2006-05-25 14:42 苦行僧 閱讀(917) | 評(píng)論 (0)編輯 收藏

            2006-5-15

            2006-5-12

            ???? Humus#
            太人也女馬白勺牛了,這個(gè)世界上這么多牛人聚集在圖形里邊,發(fā)誓畢業(yè)以后絕對(duì)不干這一行。
            posted @ 2006-05-20 01:24 苦行僧 閱讀(818) | 評(píng)論 (0)編輯 收藏

            終于把基于CgFx的引擎調(diào)出來(lái)了,這周要重新規(guī)劃一下了,又要考慮好多東西,還沒(méi)有形成思路,就零零散散的記錄一些吧。

            1,F(xiàn)ragmentProgram不處理的東西,如fog,depth會(huì)自動(dòng)流到處理他們的環(huán)節(jié)。
            2, VertexProgram替代掉的就只是Tranform和Lighting,F(xiàn)ragmentProgram替代掉的時(shí)Fragment的Color和紋理插值出來(lái)的Color按照紋理的顏色模式進(jìn)行混合的部分。
            3,openGL的高級(jí)版本中有,光照中g(shù)lLightMode()中可以指定將Specular的部分帶到光柵化以后起作用,就是說(shuō)即便VertexProgram只是輸出一個(gè)Color值,最后即便采用GL_REPLACE的方式也可以體現(xiàn)出Specular來(lái)。我想這一部分FS是不能控制的。


            看到一個(gè)網(wǎng)址:http://tony3d.cnblogs.com/archive/2006/05/02/390753.html
            本來(lái)我寫(xiě)這個(gè)是想保存一點(diǎn)資料,轉(zhuǎn)載一點(diǎn)文章(現(xiàn)在也不轉(zhuǎn)了,有時(shí)候涉及版權(quán)的問(wèn)題),記錄一點(diǎn)心得,沒(méi)想到這家伙居然把我的blog也列進(jìn)去了,真是丟人現(xiàn)眼,呵呵,還是找寫(xiě)真正高手的blog吧,比如http://www.humus.ca/。
            posted @ 2006-05-19 16:09 苦行僧 閱讀(844) | 評(píng)論 (0)編輯 收藏

            1,當(dāng)析構(gòu)函數(shù)為protected時(shí),不能delete掉該對(duì)象的指針,這樣就可以用來(lái)實(shí)現(xiàn)智能指針,結(jié)果就是從來(lái)不會(huì)顯式調(diào)用delete一個(gè)refptr的對(duì)象。
            2,在vs.net環(huán)境中,要把working directory設(shè)置一下,才能找到bin目錄。
            3,LNK2019錯(cuò)誤涉及到的往往是在定義class的時(shí)候沒(méi)有在前邊添加NSGDLL的標(biāo)識(shí),這樣就不會(huì)被編譯到lib里邊,就會(huì)在另外一個(gè)工程使用該lib造成鏈接的時(shí)候出問(wèn)題。
            4,cgFx的初始化工作要在glutCreateWindows之后進(jìn)行,因?yàn)闆](méi)有windows窗口句柄產(chǎn)生的時(shí)候是不能createContext的。

            待續(xù)...
            posted @ 2006-05-15 16:11 苦行僧 閱讀(1120) | 評(píng)論 (0)編輯 收藏

            2006-5-9

            2006-5-8

            HOWTO: Write a Summer of Code application | drupal.org #
            Tell us how to write a SOC application
            posted @ 2006-05-12 03:04 苦行僧 閱讀(820) | 評(píng)論 (0)編輯 收藏

            流水帳,隨手記下:
            • 直到現(xiàn)在我才明白,CGCGCGFXCGFXCG是一種語(yǔ)言,CGFX是一套編程模型,而我們要做的是封裝cgFX,有了CGFX就有更強(qiáng)的一種表達(dá),可以對(duì)不同的Profile指定配置,可以設(shè)定openGL state
            • 對(duì)于D3D的繪制方式而言,是根據(jù)名字得到Technique的句柄,然后每次繪制Mesh前設(shè)定生效的Technique,在遍歷該Technique下的所有Pass,逐一進(jìn)行繪制;
            • 那么對(duì)于OpenGL來(lái)說(shuō),我們只知道在CreateProgram的時(shí)候指定一個(gè)入口函數(shù),那對(duì)于具有多個(gè)Technique的情況我們還不知道怎么進(jìn)行切換,是用兩個(gè)Program表示呢,還是調(diào)用什么參數(shù)可以切換?
            • 但是不管怎么表示,從概念上是應(yīng)該允許像D3D那樣指定的,即在某一個(gè)Mesh繪制前指定用某一個(gè)Effect的某一個(gè)Technique,甚至Pass
            • 后來(lái)查到在cg1.2發(fā)布的cg_tookit里邊提供了CgFx的很好的支持,能夠想D3D Effect格式那樣ICgFxEffect->setTechnique(),有pass->begin(),pass->end()這種方法,但是不知道為什么到cg1.4把這些東西去掉了。在cgReleaseNote里邊寫(xiě)到:
              • Complete rewrite of CgFX, including an API integrated with the Cg runtime API, support for extensible, cross-platform graphics state management, and support for unsized arrays and interfaces.
            ??? 就是說(shuō)重寫(xiě)了,跟以前不一樣兒了,后邊給了對(duì)于使用CgFx庫(kù)的說(shuō)明:
            • Applications and effects that used previous versions of CgFX will require modification.Applications that use CgFX will have to be modified to use the new CgFX API. If the supplied OpenGL state manager for CgFX is used, the effect files themselves must be modified. The effects must be changed to use OpenGL state assignments, rather than the D3D state assignments supported in prior versions of CgFX. A subsequent release of Cg will provide D3D and cross-platform state managers for CgFX.
            • CgFX has been redesigned and re-implemented. As noted above, existing applications that use CgFX must be modified if the new API is to be used. In addition, if you wish to use the supplied “native” OpenGL state manager, which assumes that OpenGL-style state names and vales are used in effects, existing effects must be modified to use OpenGL-style states. See the “Introduction to CgFX” chapter in the Cg Users Manual for more details. If you have questions or problems related to porting existing CgFX applications, please contact NVIDIA developer relations.
            太惡心了,就是說(shuō)原來(lái)如果你用了很好實(shí)現(xiàn)的CgFx,現(xiàn)在對(duì)不起,不能用了。所以我看到的早期的使用cg1.2的nebula2都封裝了CGFX,但是到了1.4不知道為什么,發(fā)布的CG_tookit里邊卻去掉了這個(gè)CGFX的運(yùn)行庫(kù)。nebula2新的版本也去掉了CGFX,只剩下D3DShader的支持。
            上邊這段話最后說(shuō)如果有問(wèn)題,聯(lián)系Nvidia developer relations。我想一想也沒(méi)有辦法了,去問(wèn)wj大牛都不知道怎么回事兒,那只好去問(wèn)一下了,結(jié)果到了nvidia developer網(wǎng)站上也差不到可以直接問(wèn)誰(shuí),還填了一張表注冊(cè)了一個(gè)用戶,現(xiàn)在還沒(méi)有被批下來(lái)。最后實(shí)在等不及了,去論壇上問(wèn)吧。下面幾個(gè)地址,沒(méi)準(zhǔn)兒有熟知cg的人可以答復(fù)一下.

            http://www.gamedev.net/community/forums/topic.asp?topic_id=389475

            ?

            http://www.smth.org/bbscon.php?bid=50&id=43518

            ?

            http://www.smth.org/bbscon.php?bid=197&id=50169

            ?

            http://forums.nvidia.com/index.php?showtopic=13875


            再看看Nvidia到底怎么說(shuō)的:
            • Cg1.1里邊關(guān)于cgFX說(shuō):

            CgFX beta support for DirectX 8, DirectX 9, and OpenGL

            • Cg1.2里邊關(guān)于cgFX說(shuō):

            Cg Effects Explained document?

            CgFX beta support for DirectX 8, DirectX 9, and OpenGL

            • Cg1.4.1里邊關(guān)于cgFX說(shuō):

            Complete rewrite of CgFX, including an API integrated with the Cg runtime API, support for extensible, cross-platform graphics state management, and support for unsized arrays and interfaces.

            • Cg1.5beta里邊關(guān)于cgFX說(shuō):

            Cg 1.3 and 1.4 style Effects files supported



            • 又考察了openGL2.0GLSL,發(fā)現(xiàn)對(duì)于繪制的描述感覺(jué)跟CG1.4FX的運(yùn)行庫(kù)也差不多,又因?yàn)椴皇煜ぃ€是回頭看cgFX吧。
            • 裝了cg1.2看原來(lái)的文檔,學(xué)習(xí)筆記如下:
            • cgFX主要提供了三點(diǎn)好處:
              • 不同硬件得以配置(technique,profile)
              • 多遍繪制的描述(pass)
              • 表達(dá)了環(huán)境信息(state)
            • cgFXmicrosoft FX2.0DirectX9.0Effect格式相似
            • cgFX既可以在openGL又可以在D3D上運(yùn)行,便于以后擴(kuò)展
            • 主要方法接口:
            • CgFXCreateEffect,CgFXCreateEffectFromFileA,CgFXCreateEffectCompiler,CgFXCreateEffectCompilerFromFileA
            • CgFXSetDevice,CgFXFreeDevice
            • CGFXHANDLE GetTechnique(UINT index);CGFXHANDLE GetTechniqueByName(LPCSTR name);
            • CGFXHANDLE GetPass(CGFXHANDLE technique, UINT index);CGFXHANDLE GetPassByName(CGFXHANDLE technique, LPCSTR name);
            • CGFXHANDLE GetParameter(CGFXHANDLE parent, UINT index);
            • CGFXHANDLE GetParameterByName(CGFXHANDLE parent, LPCSTR name);
            • CGFXHANDLE GetParameterBySemantic(CGFXHANDLE parent, LPCSTR name);
            • CGFXHANDLE GetParameterElement(CGFXHANDLE parent, UINT element);
            • HRESULT FindNextValidTechnique(CGFXHANDLE hTechnique,CGFXHANDLE *pTechnique);
            • HRESULT SetTechnique(CGFXHANDLE pTechnique);CGFXHANDLE GetCurrentTechnique();
            • HRESULT Begin(UINT* pPasses, DWORD Flags);HRESULT Pass(UINT passNum);HRESULT End();
            • HRESULT CloneEffect(ICgFXEffect** ppNewEffect);
            • HRESULT GetDevice(LPVOID* ppDevice);
            • HRESULT OnLostDevice();
            • HRESULT OnResetDevice();
            • 主要接口:
            • ICgFXBaseEffect
            • ICgFXEffect
            • ICgFXEffectCompiler
            posted @ 2006-04-25 23:41 苦行僧 閱讀(1461) | 評(píng)論 (0)編輯 收藏

            shade 學(xué)習(xí)筆記( 3 )- cg openGL runtime library

            1. 當(dāng) uniform 參數(shù)設(shè)置到 openGL 以后是保存在 CG openGL runtime 里邊或者 cg core runtime 里邊,而 d 3d 是直接保存到 GPU constant memory 里邊。
            2. openGL 在使用 CG 的時(shí)候必須首先使用wglCreateContext() or glXCreateContext()來(lái)創(chuàng)建 openGL Context
            3. 設(shè)置 Uniform參數(shù):
            • cgGLSetParameter,兩種類型 float (f),double(d).
            • cgGLSetMatrixParameterfr , cgGLSetMatrixParameter dc, 四種, c 表示列向量為主, r 表示 row 向量為主。
            • cgGLSetStateMatrixParameter()可以用來(lái)設(shè)置狀態(tài)矩陣,包括 ModelView 矩陣, Projection 矩陣,紋理矩陣。
            • cgGLSetParameterArray()用來(lái)設(shè)置 Uniform 的數(shù)組參數(shù);cgGLSetMatrixParameterArrayfr用來(lái)設(shè)置矩陣數(shù)組
            ??? 設(shè)置變量參數(shù):
            • 因?yàn)?/span>FP的變量參數(shù)是按照光柵化插值后的結(jié)果來(lái)設(shè)置的,所以只有VS程序有變量參數(shù)。
            • 設(shè)置變量參數(shù)兩步:
              1. cgGLSetParameterPointer():設(shè)置變量數(shù)組,我理解就是頂點(diǎn)數(shù)組
              2. void cgGLEnableClientState(CGparameter parameter);和void cgGLDisableClientState(CGparameter parameter);使得該參數(shù)有效。
              • 注意:cgGLSetParameter也可以用來(lái)設(shè)置變量參數(shù),這時(shí)采用的是openGL立即模式,也就相當(dāng)于glVertex,glNormalglColor這樣的做法吧,但是我想這顯然是一種效率不高的做法。且cgGLGetParameter不能用來(lái)取變量參數(shù)。
            ??? 設(shè)置Sampler參數(shù):Sampler和紋理是一一對(duì)應(yīng)的,所以實(shí)際就是對(duì)一段頂點(diǎn)繪制指定一個(gè)紋理。
            • cgGLSetTextureParameter(CGparameter parameter,GLuint textureName);來(lái)指定一個(gè)紋理給CGParameter
            • void cgGLEnableTextureParameter(CGparameter parameter);來(lái)使紋理生效。void cgGLDisableTextureParameter(CGparameter parameter);使其失效,相當(dāng)于glBindTexture命令。
            void cgGLSetOptimalOptions(CGprofile profile);來(lái)使用最優(yōu)的Profile。而CGbool cgGLIsProfileSupported(CGprofile profile);可以用來(lái)判斷硬件是否支持該Profile

            經(jīng)過(guò)這幾天的學(xué)習(xí),終于大概明白了shader是怎么work的了,但是對(duì)于用programmable pipeline替換掉fixed function還是一頭霧水。

            ?

            posted @ 2006-04-22 06:37 苦行僧 閱讀(2456) | 評(píng)論 (1)編輯 收藏

            2006-4-22

            365Key-天天網(wǎng)摘生成

            posted @ 2006-04-22 05:53 苦行僧 閱讀(788) | 評(píng)論 (0)編輯 收藏

                 摘要:   閱讀全文
            posted @ 2006-04-21 01:29 苦行僧 閱讀(1487) | 評(píng)論 (0)編輯 收藏

                 摘要:   閱讀全文
            posted @ 2006-04-20 01:43 苦行僧 閱讀(2100) | 評(píng)論 (0)編輯 收藏

                 摘要:   閱讀全文
            posted @ 2006-04-20 01:33 苦行僧 閱讀(747) | 評(píng)論 (0)編輯 收藏

                 摘要:   閱讀全文
            posted @ 2006-04-19 00:42 苦行僧 閱讀(713) | 評(píng)論 (0)編輯 收藏

                 摘要:   閱讀全文
            posted @ 2006-04-16 05:19 苦行僧 閱讀(753) | 評(píng)論 (1)編輯 收藏

                 摘要:   閱讀全文
            posted @ 2006-03-27 13:57 苦行僧 閱讀(1171) | 評(píng)論 (2)編輯 收藏

            我的個(gè)人知識(shí)管理更新

            posted @ 2006-03-24 12:28 苦行僧 閱讀(1213) | 評(píng)論 (3)編輯 收藏

                 摘要: 一般而言,比起C程序來(lái)說(shuō),C++游戲程序是可重用和可維護(hù)的。可這真的有價(jià)值嗎?復(fù)雜的C++可以在速度上與傳統(tǒng)的C程序相提并論嗎?
              閱讀全文
            posted @ 2006-03-18 00:03 苦行僧 閱讀(1431) | 評(píng)論 (2)編輯 收藏

            僅列出標(biāo)題
            共3頁(yè): 1 2 3 
            久久久久久久综合日本亚洲| 久久久久久国产精品免费无码| 久久男人Av资源网站无码软件| 香蕉久久夜色精品国产2020| 精品久久久久久无码国产| 伊人色综合久久天天| 久久久久国产成人精品亚洲午夜| 久久青青草原亚洲av无码| 久久亚洲国产精品123区| 香蕉久久夜色精品国产2020| 99精品国产99久久久久久97| 丰满少妇人妻久久久久久| 久久久久中文字幕| 色综合久久综精品| 中文字幕精品久久| 国产精品久久久久久久| 久久国产成人午夜AV影院| 伊人久久大香线蕉综合网站| 精品久久久噜噜噜久久久| 久久99精品久久久久久秒播| 久久久久亚洲国产| 97久久国产亚洲精品超碰热| 久久午夜无码鲁丝片午夜精品| 久久人人爽人人爽人人片AV高清| 久久久精品免费国产四虎| 九九精品久久久久久噜噜| 国产成人久久精品区一区二区| 久久久久九九精品影院| 久久精品人人做人人爽电影蜜月| 久久嫩草影院免费看夜色| 久久精品一区二区三区不卡| 一本色道久久综合| 精品熟女少妇aⅴ免费久久| 久久99国内精品自在现线| 香蕉久久永久视频| 久久av免费天堂小草播放| 国产精品久久久久jk制服| 亚洲av日韩精品久久久久久a| 久久艹国产| 青青草原综合久久| 精品无码久久久久国产|