#
一直沒玩臺服,國服也停留在72級。 成都的天氣一天天嚴峻,更是不想動了,于是用NVPerfHUD掛了下WOW,看看它到底啥樣。
用NVPerfHUD掛程序需要被掛的程序自身支持,但是網上有一個老兄寫的一個NVPerfHUD Any程序可以幫你完成這個功能。對大多數D9的都有效。除非本身做了破解。
給大家這個鏈接,自己去解決個人問題。
http://www.thecodeway.com/blog/?p=433
完美時空的引擎很不錯,依然堅挺地用著D8。其實挺想掛來看看的,可惜市面上主流的工具都不支持D8,只有D9以及以后的版本。
WOW在CTM的版本中升級了它的渲染引擎,光從水面和火焰就看得出來。 但WOW一向是以負載和流暢度為主,并且WOW本身賣的不是畫面。所以若不能幫助提升游戲性的渲染損耗基本上被無視了。 其實吧,個人覺得,做游戲無非就三種了。 一種是追求畫面,這一點棒子很有心得。二是追求可玩性,這一點我想WOW應該遙遙領先了吧。 另外一種追求就顯得很單純了---錢。 這一點國內許多游戲做得很好,在此就不列名字了,因為比較多。
由于上星期在公司測試新寫好的材質和資源管理時,發現ALPHA測試的草叢效果很不理想,于是將草的ALPHA混合開啟了,一時間,感覺世界被顛倒了。因為草是按簇畫的,排序也只能是按簇排序,當開啟了ALPHA混合后,草叢與草叢之間沒有太多問題,只是草叢本身出現了像素渲染錯誤。 不管是Z寫和Z測試如何選擇開啟和關閉。都會有問題。
突然發現草這個東西很特別。
草叢的建模和GPU GEMS 1上的建模方式一樣, 三個矩形交叉的方式。
1、它需要用ALPHA混合來實現效果
用ALPHA混合的效果是很不錯的。因為可以使邊緣柔和。畢竟ALPHA測試會因為圖片ALPHA值采樣引起的誤差導致嚴重的鉅齒。其次就是對美術要求太高了,需要嚴格控制ALPHA與非ALPHA交界處。
2、但它的行為屬性卻是一個非透明物體。
這是因為它必須有深度關系,必需寫Z。 因為只有寫了Z,才能夠正確地與特效等透明物混合,并且也只有寫了Z,同一草中的多個面片才能夠正常混合。
在忽略其它情況下,我試過了Z測試和Z寫的四種組合,也未能達到草叢本身和單棵草都同時達到正確的效果。
還是多看看別人怎么做的吧,所以上來就比較關心WOW的植被渲染了。 當看到下面這樣的紋理的時候,我笑了。沒想到BLZ的美術資源節約到了這樣的程度,真是細致入微啊(這不是拍馬屁,試問有多少美術資源是這樣做的)。 可以看出,若不采用這樣的半張,而用整張,那么就是128X128的大小。
左邊為原圖,右邊為ALPHA通道查看圖
而對于樹的渲染,則很普通了。設置好紋理,設置好數據和渲染狀態,提交繪制即可。
為了看到ALPHA混合的效果,我強忍著把WOW在我7300的顯卡上開完了效果。以為會咋的,結果啥也沒發生。
WOW的植被的確沒有用到ALPHA混合。我失望了。
可能許多人覺得,把多張紋理整合在一張上更好吧。 當然了,這是自然的。 下面就是WOW中經常一起出現的植被的紋理打包圖。
大家可以看到,右邊的圖并沒有被裁剪,其原因不言而諭(因為想以非對稱營造感覺,并且小件物體紋理本身比較小。)。
發現這草用的是兩片,并且大小還不一樣。 不知是否真的有此必要。
我最后要說明的是,這文章就算完了。沒有結論,也沒有感言。因為那樣太俗套!
摘要: 由下面幾個文章引發的欲望,讓我自己也試著實現了一個基于2D的骨骼動畫。
一篇講述骨骼動畫數學運算的文章
http://www.cnblogs.com/neoragex2002/archive/2007/09/13/891945.html
兩篇講述骨骼動畫原理和實現的文章 一篇也是用的2D,老外的那篇用的是DX
http://www.shnenglu.com/Leaf/archive/2010/12/31/137818.html
空明流轉用C#寫的一個,當然也可以下載源碼。只是在他的BLOG中,他未解釋任何東西。并且我也未曾下載任何源碼,不知是否源碼中有文檔
http://www.shnenglu.com/lingjingqiu/archive/2008/06/07/52463.aspx
很不爽的是,許多例子或原理講的時候沒有帶旋轉。 其實那才是重頭戲。 空明流轉的貌似有旋轉,可
閱讀全文
摘要:
我不是Shader帝,雖然知道Shader怎么寫,但一直沒仔細研究過。最近蛋疼至極,研究了下RenderMonkey,于是抽著幾個看著比較有趣的效果做了一下。
先前的模型貼花http://www.shnenglu.com/Leaf/archive/2011/01/07/138093.html
和CUBE MAP http://www.shnenglu.com/Leaf/archive/2011/01/07/138106.html
就是此次蛋疼期的產物之一。
還是先圍觀,上圖再說
閱讀全文
摘要: 其基本原理很多例子上有講到。下面給出一些比較合適的鏈接
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,于是不需要傳入觀察位置,并且得到的向量即為所求。本文的代碼采用此
閱讀全文
摘要: 一、投影紋理進行模型貼花時,主要是進行三角面剔除,使在渲染貼花時,提交最少的三角面。
二、在貼花PASS中,需要將全局混合開啟,并設置相應的SRCBLEND(SRC_ALPHA)和DESTBLEND(DEST_ALPHA)值。括號內為我用的值。
當然,如果你不想讓貼花與場景(模型)混合,則可以不開啟。
三、請注意紋理的尋址方式以及紋理邊緣的ALPHA情況。 若紋理邊緣ALPHA不為0,則可以手工進行裁剪。
四、本文僅是采用了固定的投影方向和SHADER內部定義變量的方式來進行貼花渲染。 并且,并未進行模型三角面剔除。所以若要使用,則需要注意第一個問題。
五、本文靈感來源于此貼:http://forums.create.msdn.com/forums/p/34339/198791.aspx
六、支持郵件交流:BoYueGame#Gmail#com
閱讀全文