锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品久久久久久久久免费桃花,亚洲一区二区三区在线观看视频,免费的成人avhttp://m.shnenglu.com/CrazyDev/category/13583.html鍋跺皵璁板綍鑷繁鎬濈華鐨勫湴鏂?..zh-cnThu, 20 May 2010 03:51:27 GMTThu, 20 May 2010 03:51:27 GMT60鍥涘弶鏍戝拰鍏弶鏍戠殑鍓斿嚭閫夋嫨(杞?http://m.shnenglu.com/CrazyDev/articles/115700.htmlCrazyDevCrazyDevTue, 18 May 2010 09:23:00 GMThttp://m.shnenglu.com/CrazyDev/articles/115700.htmlhttp://m.shnenglu.com/CrazyDev/comments/115700.htmlhttp://m.shnenglu.com/CrazyDev/articles/115700.html#Feedback0http://m.shnenglu.com/CrazyDev/comments/commentRss/115700.htmlhttp://m.shnenglu.com/CrazyDev/services/trackbacks/115700.htmlhttp://www.gamedev.net/reference/articles/article1485.asp
緲昏瘧:瀹嬫檽瀹?br>
浠嬬粛錛?/span>
銆銆浼犵粺璁$畻鏈哄浘褰㈠簲鐢?-鐗瑰埆鏄殑搴旂敤鐨勯渶瑕佷竴涓疄鏃訛紝浜や簰鐨勬柟娉曟潵鐜板疄--閫氳繃澶勭悊涓涓彂閫佸埌鏄懼崱鐨勬暟鎹殑鏈鏈夋晥鐨勫浘褰㈡暟鎹瓙闆嗙殑鏂規硶鏉ュ喅瀹氬浘褰㈡暟鎹殑鏄劇ず錛岃屼笉鏄紶閫佸叏閮ㄧ殑鏁版嵁錛屽洓鍙夋爲錛屽叓鍙夋爲錛孊sp鏍戯紝鑳岄潰鍓斿嚭錛宲vs闆嗗悎寰堝鍏朵粬鏂規硶閮芥槸閽堝榪欎釜鐩殑鑰屾彁鍑虹殑銆?br>
銆銆嫻佽鐨勮綆楁満鍥懼艦鍗¤繎浜涘勾鍦ㄥ鐞嗚兘鍔涘拰澶勭悊鏂規硶涓婄▼鎸囨暟澧為暱錛屽綋鍓嶇殑鐘舵佹彮紺哄嚭寰堝鏃跺欏簲璇ユ洿濂界殑鍜屽揩閫熺殑鎵懼埌涓涓ソ鐨勬暟鎹泦鎶婂畠浠佸埌鏄懼崱閲岋紝鑰屼笉鏄妸綺懼姏鏀懼湪鍔姏鐨勬壘鍒頒竴涓渶濂界殑鏁版嵁闆嗐傝繖鏍風殑鏁版嵁闆嗘槸涓涓繎浼肩殑鏈濂界殑鏁版嵁闆嗗茍涓旇兘緇忓父鍙戠幇瀹冮兘鏈夊崄鍒嗘湁鏁堢殑綆楁硶錛屽洜姝ゆ墜澶翠笂鐨勪換鍔″洜姝ゅ氨鍙樻垚浜嗗洖欏懼凡緇忓瓨鍦ㄧ殑鎶鏈拰綆楁硶騫朵笖灝濊瘯鎵懼埌鏈蹇殑閫夋嫨錛岃繖瀵逛簬鎵懼埌鏈濂界殑瑙e喅闂鐨勬柟娉曞茍涓嶆槸浠涔堣礋鎷呫?br>
涓銆佸洓鍙夋爲錛?/span>
銆銆鍥涘弶鏍戜綔涓烘暟鎹鐞嗚〃杈炬妧鏈殑涓涓ソ鏂規硶宸茬粡鏈夊緢澶氬勾浜嗭紝鐗瑰埆鏄湴褰㈡覆鏌撳紩鎿庨兘鑳藉埄鐢ㄤ粬寰堟湁鏁堢殑浣滀負鍓斿嚭鏈哄埗錛屽墿浣欑殑榪欎釜绔犺妭灝嗕細緇欏嚭涓涓皬鏁伴噺鐨勮鏄庡洓鍙夋爲騫朵笖浼犵粺鐨勶紝楂樺眰鐨勬柟娉曚嬌鐢ㄥ洓鍙夋爲錛屽湪鎻忚堪涓涓揩閫熺殑鏂規硶涔嬪墠銆?br>
http://school.ogdev.net/upload/img/4885992475.jpg


鍥涘弶鏍戞暟鎹粨鏋勶細
鍥涘弶鏍戣鎻忚堪閫氳繃瀵瑰簲姣忎釜鐖惰妭鐐逛紶閫掑洓涓瓙鑺傜偣錛屽湪涓涓湴褰㈡覆鏌撲笂涓嬫枃閲岋紝鏍硅妭鐐瑰皢浼氳〃杈句負榪欎釜鍥寸粫鍦板艦鐨勬鏂瑰艦鍖哄煙闆嗭紝鑷妭鐐硅〃紺轟負“宸︿笂”錛?#8220;鍙充笂”錛?#8220;宸︿笅”鍜?#8220;鍙充笅”璞¢檺錛岃繖浜涜薄闄愮敱鏍硅妭鐐圭粍鎴愬茍涓旀瘡涓涓兘鏄敱鍥涗釜瀛楄妭鐐歸掑綊鐨勫畾涔変笅闈㈢殑鎻忚堪灝嗕細璇存槑榪欎簺姒傚康涓涓洓鍏冩暟鐨勬暟鎹粨鏋勫茍涓嶈礋璐?涓嬮潰鐨勪吉鐮佹紨紺轟簡榪欎釜鍥涘弶鏍戠殑鑺傜偣錛?
TPosition = record
x,y : float;
end;

PQuad = pointer to TQuadNode;
TQuad = record
p1,p2,p3,p4 : TPosition; // corners
c1,c2,c3,c4 : PQuadNode; // children
end;

涓涓畝鍗曠殑閫掑綊鍒濆鍖栦竴涓繁搴︿負max_depth鐨勫洓鍙夋爲濡備笅錛?br>
function InitQuad(x,y,w : float; lev : int) : PQuad;
var
tmp : PQuad;
begin
inc(lev);
if lev > max_depth then return(nil);
new(tmp);
...initialize tmp node with corner data
w := w / 2;
tmp^.c1 := InitQuad(x - w, y - w, w, lev);
tmp^.c2 := InitQuad(x - w, y + w, w, lev);
tmp^.c3 := InitQuad(x + w, y + w, w, lev);
tmp^.c4 := InitQuad(x + w, y - w, w, lev);

return(tmp);
end;

鍩轟簬鍥涘弶鏍戠殑鑳岄潰鍓旈櫎

銆銆鍦ㄥ緢澶氬簲鐢ㄩ噷涓昏鐨勫洓鍙夋爲鍑芥暟鏄彁渚涗竴涓湁鏁堢殑鐨勮鎴綋鏁版嵁鍓旈櫎,涓嬮潰鐨勫熀浜庤鐐圭殑楂樺眰瑙嗘埅浣撳墧闄ゅ凡緇忓浜嗭細
procedure CullQuad(q : PQuad);
begin
case Clip_Quad_against_View(q) of
inside : DrawQuad(q);
outside : ; // ignore quad
else begin
...CullQuad children of q
end;
end;
end;

Clip_Quad_against_View 鏄痗ullquad鐨勫叧閿嚱鏁幫紝騫朵笖褰撶劧榪愯鐨勫嚱鏁板拰鏂規硶鏉ヨВ鍐寵繖涓棶棰樻槸鍚︽槸涓涓洓鍏冿紙鎴栬呭杈瑰艦錛変氦鍙変簬榪欎釜瑙嗚浣擄紝閫氳繃浜ゅ弶瑙嗚浣撻噾瀛楀浣滀負騫抽潰闆嗗悎媯嫻嬪鉤闈綔涓轟竴濂楀厜綰匡紝鐒跺悗榪炵畫嫻嬭瘯鍑犱綍浣撶殑鍏夌嚎鎬庝箞鍜屽彲瑙嗕綋騫抽潰鐩鎬氦鐨勶紝鍏夌嚎鐩鎬氦嫻嬭瘯鐨勬柟紼嬪湪寰堝錛擄絼鍑犱綍鐨勪功涓婇兘鍙互鎵懼埌錛岃繖閲屼笉鍋氶噸澶嶃?br>
浜屻侀夋嫨鍩轟簬鍥涘弶鏍戠殑瑙嗙偣鍓旈櫎錛?/span>

涓婇潰鎻忚堪鐨勬柟娉曚竴鑸儏鍐典笅浼氬緱鍑烘紜殑緇撴灉錛屼絾鏄粬娌℃湁緇欒繖涓畝鍗曠殑闈欐佺殑鍥涘弶鏍戞彁渚涗換浣曚笢瑗匡紝濂藉鐨勪紭鍖栧彲浠ュ簲鐢ㄥ埌鍥涘弶鏍戠殑鍓旈櫎榪囩▼錛屼笅闈㈢殑涓や釜闃舵浜х敓浜嗕竴涓緢蹇殑鍜屽緢鏈夋晥鐨勫熀浜庡洓鍏冩暟鐨勫墧闄わ細

銆銆*鍩轟簬鐐圭殑鍓旈櫎錛氫竴涓畬鍏ㄧ殑鍓旈櫎璁$畻錛屼粬閫氳繃璁板綍鐩稿叧鐨勫洓涓鐨勫彲瑙嗙偣銆?br>
銆銆寰堝榪欐牱鐨勬儏鍐靛彲浠ヨ鑰冭檻錛屼緥濡傦細濡傛灉涓涓崟鐙殑鐐瑰湪瑙嗚浣撳唴鍙戠幇錛岄偅涔堣繖涓潡灝卞湪瑙嗚浣撳唴錛屽鏋滄墍鏈夌殑鐐歸兘鍦ㄨ瑙佷綋鐨勪竴闈紝閭d箞榪欎釜鍧楀氨涓嶅湪瑙嗚浣撳唴錛庝竴涓暟閲忕殑鍙兘鎬у氨瀛樺湪錛屽茍涓旈渶瑕侀氳繃涓涓畬鍏ㄧ殑璁$畻錛屼絾鏄笂闈㈢粰鍑虹殑涓ょ鎯呭喌寰楀嚭浜嗕竴涓厖瓚崇殑鍚彂鎬ф潵鎺ュ彈錛屼涪寮冩垨鑰呭皢鏉ラ噸鏂板畾涔変竴涓綔鍦ㄧ殑鍧椼?br>
銆銆*錛綇锝嶏綇锝夛綒锝侊綌锝夛綇锝庯細鏄竴縐嶅偍瀛樿綆楃粨鏋滅殑鎶鏈茍涓旇繕闇瑕佺浉鍚岀殑璁$畻鏃舵煡鎵懼偍瀛樼殑緇撴灉銆?br>
銆銆鍥涘厓鏁頒綔涓轟竴涓潤鎬佺粨鏋勶紝榪欑鐗規畩瑙掔殑鐐圭粡甯擱兘鏄浉鍚岀殑錛屽彟澶栵紝寰堝鍧楃殑瑙掓槸鍥涗釜鍧楀叡浜殑錛屽茍涓斿湪寰幆浼犻掑洓鍏冩暟鐨勮涓閬嶅張涓閬嶇殑錛岄氳繃鍐沖畾涓涓鐨勭浉鍏充綅緗叧鑱旇繖涓彲瑙嗕綋鍜屾柟渚跨殑鍌ㄥ瓨榪欎釜鍥涘厓鏁扮殑鐨勮綆楃粨鏋溿?br>
銆銆涓嬮潰鐨勪吉浠g爜澹版槑浜嗚繖涓畻娉曪紝瀵逛簬涓涓洓鍏冩暟妯法鐨勫尯鍩熸槸(0,0)鍒?256,256);
(globals:)
Memoized : array[0..256,0..256] of byte;
posx,posy : float; // origin of FOW
Lx,Ly,Lz : float; // normal of left FOV plane
Rx,Ry,Rz : float; // normal of right FOV plane

function CheckPos(x, y : int) : int;
// checks position x,y against FOV planes, memoize
// Results: bit 1 (inside), bit 2 (left), bit 3 (right)
var
res : int;
begin
res := 0;
if (x-posx)*Lx + (y-posy)*Ly > 0 then res := 2;
if (x-posx)*Rx + (y-posy)*Ry > 0 then res := res or 4;
if res = 0 then res := 1;
Memoized[x,y] := res;
return res;
end;

function TestQuad(x, y, w : int) : int;
// quad-midpoint: (x,y)
// quad-width: 2w
// test quad against FOV
// Results: 0 (out), 1 (partially in), 2 (completely in), -1 (unknown)
var
m1,m2,m3,m4 : int;
tmp : int;
begin
m1 := Memoized[x - w, y + w];
if m1 = 0 then CheckPos(x - w, y + w);
m2 := Memoized[x + w, y + w];
if m2 = 0 then CheckPos(x + w, y + w);
m3 := Memoized[x + w, y - w];
if m3 = 0 then CheckPos(x + w, y - w);
m4 := Memoized[x - w, y - w];
if m4 = 0 then CheckPos(x - w, y - w);

tmp := m1 and m2 and m3 and m4;
if tmp = 1 then
return 2; // quad completely inside FOV

if m1 or m2 or m3 or m4 = 1 then
return 1; // quad partially inside FOV

if tmp => 0 then
return 0; // quad completely outside FOV

return -1; // else quad state undetermined
end;

涓婇潰鐨勫嚱鏁板簲璇ヨ娓呴櫎騫朵笖鍙婃棭鐨勯渶瑕佹暣鏁扮殑鐨勫洓鍏冨潡紼嬪簭
procedure CullQuadtree;
begin
Clear_Memoized_Array_to_Zero;
CullQuad(Quadtree_Root);
end;

procedure CullQuad(q : PQuad);
begin
case Test(quadmidpoints and half-width) of
2 : ...handle complete quad
1 : ...handle partial quad
0 : ; // ignore quad
else begin
...CullQuad children of q
end;
end;
end;

涓夈佸彟澶栭渶瑕佽冭檻鐨勶細

寰堝鍦ㄤ唬鐮侀噷鍜屼竴鑸殑綆楁硶閲岄兘闇瑕佽鑰冭檻鐨勬槸錛?br>
銆銆*鍥涘弶鏍戠畻娉曠殑鐗堟湰閲岃〃鐜板嚭鐨勫彧鍓旈櫎宸?鍙籌紝涓嶆槸榪戣鍓潰錛屼笉鏄繙瑁佸噺闈㈡垨鑰呬笂涓嬮兘娌℃湁鑰冭檻錛屽彟澶栧彧鏈夊鉤闈㈣瑙掋傚洜姝よ繖涓畻娉曞彧瑕嗙洊浜嗗洓鍙夋爲鐨勭殑楂樺害鍓旈櫎鍜岃瑙侀潰娌跨潃榪欎釜鍥涘弶鏍戠殑闈€?br>
銆銆鎴戜滑鎵╁睍榪欎簺浠g爜娌跨潃3d鐨勫洓鍙夋爲錛屽鍔犲錛氬簲鐢ㄥ洓鍙夋爲鐨勭Щ鍑虹畻娉?浠諱綍鍙鐨勪綅緗拰鏂瑰悜灝嗕細姝g‘鐨勮繘琛岀殑涓滆タ銆?br>
銆銆*鍙﹀寰堝闄勫姞鐨勭偣錛岃瑙佷綋闇瑕佽冭檻鎵ц鐨勬瘮濡傦細濡傛灉涓や釜鐐瑰湪瑙嗚浣撶殑鍓嶉潰騫朵笖瀵硅繖FOV鐨勪竴涓潰錛岃繖涓潡閮ㄥ垎鍦ㄨ繖涓瑙佷綋閲岋紝瀵逛簬寰堝鐨勭畻娉曪紝榪欐牱鐨勫叧鍗℃弧瓚寵繖涓粨鏋溿?br>
銆銆*涓昏鍏沖績榪欎釜綆楁硶鐨勯渶瑕佹槸鍦ㄨ蹇嗛渶姹傞噷錛屽敖綆′竴鑸殑娌夋蹈璁板繂瀵逛簬姣忎釜鍙兘鐨勫潡鏌愪簺鐐歸渶瑕佷竴涓檮鍔犵殑瀛楄妭銆傚洜姝ゅ鏋滄鏂瑰艦鐨勫尯鍩熸湁n涓棿闅旓紝姣忎釜闈㈤兘閮介渶瑕乶涓瓧鑺傛潵鍌ㄥ瓨錛岄氳繃鍏稿瀷鐨勫彧鏈変竴涓鐗囩殑鍐呭瓨琚竴涓粰瀹氱殑閬嶅巻璁塊棶錛岃繖涓閮ㄥ垎灝辮璁塊棶浜嗗緢澶氭銆?br>
銆銆榪欑瘒鏂囩珷鎬葷粨浜嗙畻娉曠殑琛ㄨ揪錛屾垜鍙戠幇榪欐槸涓涓湁鐢ㄧН鏋佺殑綆楁硶錛屽鏋滀綘鏌ヨ浜嗙浉鍏崇殑綆楁硶騫朵笖鏈夋劅瑙﹀彲浠ュ啓淇$粰鎴戝挩璇€?

CrazyDev 2010-05-18 17:23 鍙戣〃璇勮
]]>
嬈′笘浠f父鎴忓紩鎿庡厜褰卞埗浣滅畝榪?/title><link>http://m.shnenglu.com/CrazyDev/articles/115695.html</link><dc:creator>CrazyDev</dc:creator><author>CrazyDev</author><pubDate>Tue, 18 May 2010 08:53:00 GMT</pubDate><guid>http://m.shnenglu.com/CrazyDev/articles/115695.html</guid><wfw:comment>http://m.shnenglu.com/CrazyDev/comments/115695.html</wfw:comment><comments>http://m.shnenglu.com/CrazyDev/articles/115695.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/CrazyDev/comments/commentRss/115695.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/CrazyDev/services/trackbacks/115695.html</trackback:ping><description><![CDATA[<strong>涓銆佹父鎴忓厜褰辯殑鑼冪暣 <br></strong>瀹為檯娓告垙鍒朵綔褰撲腑,鐙箟鐨勭伅鍏夊彧鏄寚紼嬪簭瀹炴椂鏍規嵁鐏厜褰卞搷鐨勯《鐐硅壊鍜屽姩鎬侀槾褰?浣嗗疄闄呭簲鐢ㄥ綋涓?褰卞搷鐜╁鏁翠綋鎰熻鐨勫厜褰辨晥鏋?涔熷氨鏄箍涔変笂鐨勫厜褰辨晥鏋滃寘鍚殑鑼冨洿瑕佹洿鍔犲箍娉涖?br>紼嬪簭鐨勫嵆鏃跺厜褰?shader鐨勫畾鍒跺浐鐒跺鍏夊獎鏁堟灉鑷沖叧閲嶈,緹庢湳鍒朵綔鐨刲ightmap,normalmap,VertexColor涔冭嚦Glow閮藉彲浠ユ瀯鎴愪竴鑸帺瀹惰鐭ヤ笂鐨勭伅鍏夋晥鏋溿?br>鍗蟲槸璇?鍦ㄦ父鎴忓埗浣滃簲璇ヤ互娓告垙鐜╁鐨勬劅瑙変負鍩哄噯鏁翠綋鐨勮緗厜褰辯殑鏁堟灉,鑰屽茍闈炰粎浠ユ妧鏈墜孌典綔涓哄垎鐣?瀵逛簬娓告垙鍒朵綔鏉ヨ,緇煎悎紼嬪簭緹庢湳鐨勫縐嶈〃鐜版墜孌?鏈緇堝憟鐜扮粰鐜╁鐨勫厜褰辯殑鎰熻,鎵嶆槸娓告垙鍒朵綔褰撲腑鐨勭伅鍏夈?br><br><strong>浜屻佸熀鏈伅鍏夌郴緇熶粙緇嶅強浣跨敤鏂規硶</strong><br>浠庣敾闈㈡覆鏌撴潵璇?鏃犺涓鑸綉娓歌繕鏄涓栦唬娓告垙,榪愮畻鐨勮鍒欐瀯寤烘槸澶т綋鐩鎬技鐨?鎴戜滑鍙互閫氳繃鍒嗘瀽榪欎釜鏋勬灦寰楀嚭鍏朵腑鍒朵綔鍚勭鍏夊獎鏁堟灉鐨勫彲鑳芥?涓嬪浘鏄瘮杈冨父瑙勭殑鍚勭鍥劇礌緇忚繃濡備綍鐨勮繍綆楄揪鎴愪簡鏈緇堢敾闈㈢殑pipeline銆?br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3870298832.jpg " src="http://school.ogdev.net/upload/img/3870298832.jpg"></a></div> <br><br>鍦ㄨ繖鏍風殑pipeline涓?瀵規渶緇堝厜褰辨湁褰卞搷鐨勭幆鑺?br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3871184690.jpg " src="http://school.ogdev.net/upload/img/3871184690.jpg"></a></div> <br><br><strong>Dark Map</strong><br>Dark Map 涔熻縐頒負 Lightmap錛岃繖鏄垜浠洰鍓嶅父浣跨敤鐨勬柟娉曚箣涓銆?br>榪欎釜閫氶亾涓鑸斁緗産ake榪囩殑鐏厜璐村浘,鎴栬匒mbient Occlusion Map, 甯哥敤鐨勬柟寮忔槸璧嬩簣涓涓彟澶栫殑UV ,榪欎竴寮犲緢灝忕殑Dark Map灝卞彲浠ュ湪娌℃湁鐏厜鐨勬儏鍐典笅鑾峰緱鑹ソ鐨勫厜褰辨晥鏋?寰堝寮曟搸褰撲腑鏄彲浠ョ敱鐏厜鑷姩鐢熸垚lightmap鐨?瀹冪殑鏁堟灉涓鑸敤鍦ㄩ潤鎬佺墿浣撲笂銆?br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3875870158.jpg " src="http://school.ogdev.net/upload/img/3875870158.jpg"></a></div> <br><br><strong>Project lights </strong><br>Project lights灝辨槸涓鑸垜浠墍璇寸殑紜歡鐏厜,鐢變簬鏁堟灉鏄嵆鏃惰繍綆?鏈変竴瀹氱殑紜歡瑕佹眰,鎺ㄨ崘涓鑸笉瑕佽秴榪?鐩?鍚﹀垯瀵規晥鐜囦細鏈変竴瀹氱殑褰卞搷.闄ら潪瀹屽叏蹇呰錛屼笉寤鴻浣跨敤榪欑鏂規硶銆?br>Project lights鐨勮繍鐢ㄤ竴鑸槸涓変釜騫寵鍏夋潵鏋勭瓚涓涓暣浣撶殑澶╁厜鐜,(鍙﹀ Ambient light鍦ㄨ繖涓繃紼嬩腑涔熸湁閲嶈鐨勬剰涔?,鐢變簬Project lights鏄璧勬簮姣旇緝鑰楄垂鐨勯儴鍒?搴旇鐢辯▼搴忓敖閲忎紭鍖栥?br><br><strong>Base map </strong><br>Base map灝辨槸diffuse map灝辨槸鎴戜滑甯歌鐨勶細璐村浘銆?br>鍦ㄨ創鍥句笂鎴戜滑鍙互鍦ㄥ浐鏈夎壊涔嬩笂榪涜鍏夊拰闃村獎鐨勭粯鍒?浠庤繖涓搴︽潵璇翠篃鏄獎鍝嶅厜褰辨晥鏋滅殑閲嶈鏂瑰紡,榪欑鍋氭硶鍑犱箮涓嶄細鍦ㄥ厜褰辮〃鐜頒笂鑰楄垂浠諱綍緋葷粺璧勬簮銆傛晥鏋滀富瑕佷緷璧栫編鏈漢鍛樼粯鍒惰創鍥劇殑姘村鉤銆?br>鍚屾椂錛岃繖涔熸槸鍦ㄧ編鏈漢鍛樿兘鍔涜鍙殑鏉′歡涓嬶紝瀹屾垚澶ч儴鍒嗗厜褰辯殑鏈浣蟲柟寮忋?br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3691264776.jpg " src="http://school.ogdev.net/upload/img/3691264776.jpg"></a></div> <br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3694395147.jpg " src="http://school.ogdev.net/upload/img/3694395147.jpg"></a></div> <br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3694921405.jpg " src="http://school.ogdev.net/upload/img/3694921405.jpg"></a></div> <br><br><strong>Project Shadow</strong> <br>Project Shadow鍜宲roject light涓鑸湁鐩稿悓鐨勫厜婧愮偣浜х敓,浣滅敤鏄敓鎴愰槾褰?鐢變簬project Shadow鏄姩鎬佺殑闃村獎,涓鑸敤浜庤〃鐜版湁鍔ㄧ敾鐨勭墿浣?瀹為檯榪愮敤涓璓roject Shadow鍜宭ightmap寰寰浜掕ˉ浣跨敤,鍒嗗埆瑙e喅闈欐佸拰鍔ㄧ敾鐗╀綋鐨勯槾褰便傚悓鏍鳳紝榪欑鏂規硶闈炲父鑰楄垂緋葷粺璧勬簮錛岄櫎闈炲畬鍏ㄥ繀瑕侊紝涓嶅緩璁嬌鐢ㄨ繖縐嶆柟娉曘?br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3698467791.jpg " src="http://school.ogdev.net/upload/img/3698467791.jpg"></a></div> <br><br><strong>Normal Map </strong><br>Normal Map鏄涓栦唬娓告垙甯哥敤鐨勬妧鏈?浠栬В鍐充簡鏈鴻兘瀵歸潰鏁伴檺鍒剁殑鎯呭喌涓嬪浣曚綋鐜扮墿浣撶粏鑺傜殑闂,閫氳繃RGB涓夎壊浠f浛XYX涓変釜Normal杞村悜鍊肩殑鏂瑰紡鑾峰緱浜嗘洿澶氱墿浣撶粏鑺傘?br>Noraml Map鏈虹悊鐨勪富瑕佹槸鍦ㄥ悇縐嶇伅鍏変綅緗細瀵圭墿浣撶殑diffuse specular鍜宺eflect榪涜鎵洸鏉ヨ揪鍒拌繎浼肩湡瀹?浣嗘槸浠栦笉浼氬base map浜х敓褰卞搷,鏃㈡槸璇磏ormal map褰卞搷鐨勪粎浠呮槸鏉愯川鏈韓,鑰岄潪璐村浘銆?br>鐢變簬Normal Map鐨勮繖涓鐩茬偣,prallax map(鎴杁isplacemap)鏂瑰紡琚垱閫犲嚭鏉ュ譏琛ormal map涓嶈兘鎵洸basemap鐨勭己闄?瀹為檯搴旂敤涓?甯稿父鍦ㄨ繍鐢∟ormal Map涔嬪悗閰嶅悎prallax map鏉ヨ揪鍒版洿濂芥晥鏋溿?br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3704374670.jpg " src="http://school.ogdev.net/upload/img/3704374670.jpg"></a></div> <br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3705272991.jpg " src="http://school.ogdev.net/upload/img/3705272991.jpg"></a></div> <br><br><strong>Vertex Color </strong><br>Material of vertex map鏄父鎴忎腑閲嶈鐨勮繍鐢?欏剁偣鑹插彲浠ラ傜敤鐨勮寖鍥村緢澶?閫忔槑鏌斾綋絳夐兘鍙繍鐢?浣嗘槸鏈涓昏鐨勫簲鐢ㄥ湪鑹插僵涓?閫氳繃鍒峰彇欏剁偣鑹插彲浠ユ柟渚胯繀閫熺殑鏀瑰彉鐗╀綋鐨勮壊璋?瀵圭郴緇熻祫婧愮殑瑕佹眰涔熻緝浣?浣嗘槸浠栦笌鐏厜鑹插僵鏈変竴瀹氬啿紿?閫氬父鎯呭喌涓嬬伅鍏夎壊褰╀笌欏剁偣鑹蹭笉浼氱敤浜庡悓涓鐗╀綋浠ラ伩鍏嶅啿紿?欏剁偣鑹插彲浠ユ墜鍔ㄧ粯鍒舵垨鑰呯伅鍏夌儤鍩?鍦ㄩ潰鏁拌緝浣庣殑鐗╀綋涓婅兘鍙戞尌鏇村鐨勫獎鍝嶃?br>欏剁偣鑹叉槸瀵規父鎴忓厜褰辨渶浣崇殑瑙e喅鏂規硶涔嬩竴錛屼篃鏄渶甯哥敤鐨勮В鍐蟲柟娉曘?br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3707259314.jpg " src="http://school.ogdev.net/upload/img/3707259314.jpg"></a></div> <br><br><strong>Gloss map</strong> <br>Gloss map鍗蟲垜浠墍璇撮珮鍏夎創鍥?涓鑸伅鍏夊鐗╀綋楂樺厜鏄熀浜庨《鐐硅壊榪涜褰卞搷,濡傝鑹叉瘺鍙?鐨。絳夌墿浣撹儲鏀垮緢闅捐〃鐜板嚭璐ㄦ劅,濡傛灉榪愮敤Gloss map鍗沖彲鍊熷姪璐村浘鐨勮倢鐞嗙晫瀹氶珮鍏夌殑澶栧艦,涔熸槸鍙互閫氳繃杈冨皯璧勬簮鍗犵敤杈懼埌褰卞搷鍏夊獎鏁堟灉鐨勬墜孌?鍙﹀寰堥噸瑕佷竴鐐?Gloss map涓庢垜浠竴鑸父鐢?D杞歡涓殑鐣屽畾涓嶅悓,騫墮潪浠呬粎褰卞搷楂樺厜,瀵瑰弽灝勮創鍥句篃鏈夊獎鍝嶃?br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3721312782.jpg " src="http://school.ogdev.net/upload/img/3721312782.jpg"></a></div> <br><br>Gloss map鍏跺疄騫朵笉涓瀹氶渶瑕佹槸鐏板害鍥?鐢ㄥ僵鑹茶創鍥句竴鏍峰彲浠ヤ嬌鐢?<br><br><strong>Environment Map </strong><br>Environment Map鍙互鐞嗚В涓烘垜浠竴鑸墍璋撶殑鍙嶅皠璐村浘,鏈夌悆褰㈠拰鐩掍綋絳夊縐嶆柟寮?琛ㄧ幇閲戝睘鐗╀綋鏃跺父鐢?鍙互閫氳繃 gloss map榪涜闄愬埗銆?br>Enivironment Map鍦╩ax涓嬬殑璐村浘妲戒負Reflection slot,榛樿鐨勮創鍥炬斁緗繘鍘諱細鐢ㄧ悆褰㈠潗鏍囨柟寮忚繘琛屽弽灝?濡傛灉瀵硅創鍥炬湁鏇撮珮瑕佹眰,涔熶嬌鐢╞ox璐村浘,鍏紶璐村浘緇勬垚鍙嶅皠鐩?濡傛灉鏄痙ds box璐村浘鍙互鐩存帴璋冪敤,浣嗘槸鍧愭爣浼氭湁涓嶅悓銆?br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3723172328.jpg " src="http://school.ogdev.net/upload/img/3723172328.jpg"></a></div> <br><br><strong>MixGlow Map </strong><br>Glow Map涓鑸敤浠ヤ綋鐜板悇縐嶅彂鍏夌墿浣?濡傜伅錛岀伀鐒扮瓑絳夛紝鏄瘮杈冨父鐢ㄧ殑鐗規晥綾籧hannel錛屽湪Glow 璐村浘鏍忛噷闈㈣創涓婃墍鐢╣low map 錛屼細鍜屽叾浠栬創鍥劇殑鏈緇堟晥鏋滀駭鐢熺浉涔樻晥鏋溿?br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3729843678.jpg " src="http://school.ogdev.net/upload/img/3729843678.jpg"></a></div> <br><br><strong>Post Effects</strong><br>闄ゅ幓涓婅堪鏁堟灉錛屽湪Final鏁堟灉杈撳嚭涔嬪悗錛屾湁鏃舵垜浠細閫氳繃鍚勭post effect鏁堟灉瀵圭敾闈㈠姞寮猴紝濡侴low絳夛紝瀵圭敾闈㈠厜褰辨劅瑙変篃浼氭湁宸ㄥぇ鐨勫獎鍝嶃?br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3732810506.jpg " src="http://school.ogdev.net/upload/img/3732810506.jpg"></a></div> <br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3733384620.jpg " src="http://school.ogdev.net/upload/img/3733384620.jpg"></a></div> <br><br><strong>Channel Mix</strong><br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3743859463.jpg " src="http://school.ogdev.net/upload/img/3743859463.jpg"></a></div> <br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3744321500.jpg " src="http://school.ogdev.net/upload/img/3744321500.jpg"></a></div> <br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3745548849.jpg " src="http://school.ogdev.net/upload/img/3745548849.jpg"></a></div> <br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3748110257.jpg " src="http://school.ogdev.net/upload/img/3748110257.jpg"></a></div> <br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3749159018.jpg " src="http://school.ogdev.net/upload/img/3749159018.jpg"></a></div> <br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3750176913.jpg " src="http://school.ogdev.net/upload/img/3750176913.jpg"></a></div> <br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3750872451.jpg " src="http://school.ogdev.net/upload/img/3750872451.jpg"></a></div> <br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3753136923.jpg " src="http://school.ogdev.net/upload/img/3753136923.jpg"></a></div> <br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/37537107094.jpg " src="http://school.ogdev.net/upload/img/37537107094.jpg"></a></div> <br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3755084591.jpg " src="http://school.ogdev.net/upload/img/3755084591.jpg"></a></div> <br><br><strong>鐏厜緋葷粺鍒嗙駭鏂規硶鍙婂埗浣滆鐐?/strong><br>鍦ㄥ疄闄呮父鎴忓埗浣滃綋涓?涓鑸笉浼氬皢鎵鏈夌殑channel閮藉紑鍚?涓鏂歸潰鍏跺疄瑕佸仛鍑轟竴嬈懼嚭鑹茬殑娓告垙鐢婚潰騫墮潪鍙栧喅浜庝嬌鐢ㄥ灝戞柊鎶鏈?浠や竴鏂歸潰涔熻鑰冭檻紼嬪簭鐨勮礋杞姐?br>鏍規嵁娓告垙鐨勭綾誨拰闇姹傞夋嫨姝g‘鐨勬柟娉曞悎鐞嗙殑鑺傜渷璧勬簮鑳藉璁╂父鎴忔嫢鏈夋洿濂界殑鏁堟灉銆?br><br><strong>鎶鏈槸鎵嬫錛屼笉鏄瘔姹?/strong> <br>銆奃oom III銆?铏界劧鍦ㄥ綋鏃舵槸鎶鏈粷瀵歸鍏堢殑娓告垙,浣嗘槸緹庢湳榪囧害鐨勪緷璧栧厛榪涚殑鎶鏈?瀵艱嚧鍦ㄧ編鏈鏍間笂鐨勫垏鍏ヤ笉澶?鏈簲璇ユ洿浼樼鐨勬父鎴?鏈兘鏇翠笂涓姝ャ?br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/3763459715.jpg " src="http://school.ogdev.net/upload/img/3763459715.jpg"></a></div> <br><br>涓庝箣鐩稿,鍑犲勾鍚庢帹鍑虹殑銆奓ost Plant銆嬪垯鎴愬姛鎵懼洖浜嗘父鎴忕編鏈渶鏈川鐨勪笢瑗匡紝浣挎妧鏈垚涓轟竴縐嶆墜孌點?br><br> <div style="OVERFLOW-X: auto; WIDTH: 100%"><a target=_blank><img alt="http://school.ogdev.net/upload/img/37655109434.jpg " src="http://school.ogdev.net/upload/img/37655109434.jpg"></a></div> <br><br>鍝簺鍦版柟錛熻浣跨敤鍝簺鎵嬫?<br>鎴戜滑棣栧厛瑕佹槑紜紝鍦ㄤ竴涓垚鐔熺殑緹庢湳鍥㈤槦涓傚浜庝竴嬈炬父鎴忕敾闈腑鐨勫悇縐嶅厜褰憋紝鏄浣曞幓琛ㄧ幇錛屼互杈懼埌鐢婚潰鏁堟灉鍜岀郴緇熻礋鎷呮渶浣崇殑緇撳悎鐐圭殑錛?br>鎴戜滑闇瑕佹壘鍒幫細鏈浼樺寲鐨勬墜孌點?br><br>From <a title=http://www.wz-online.net/web2/home/Detail.asp?id=47&FromType=1 target=_blank>http://www.wz-online.net/web2/home/Detail.asp?id=47&FromType=1</a> <img src ="http://m.shnenglu.com/CrazyDev/aggbug/115695.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/CrazyDev/" target="_blank">CrazyDev</a> 2010-05-18 16:53 <a href="http://m.shnenglu.com/CrazyDev/articles/115695.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Gamebryo浣跨敤緇忛獙璋堬紙1錛?/title><link>http://m.shnenglu.com/CrazyDev/articles/113034.html</link><dc:creator>CrazyDev</dc:creator><author>CrazyDev</author><pubDate>Mon, 19 Apr 2010 16:04:00 GMT</pubDate><guid>http://m.shnenglu.com/CrazyDev/articles/113034.html</guid><wfw:comment>http://m.shnenglu.com/CrazyDev/comments/113034.html</wfw:comment><comments>http://m.shnenglu.com/CrazyDev/articles/113034.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/CrazyDev/comments/commentRss/113034.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/CrazyDev/services/trackbacks/113034.html</trackback:ping><description><![CDATA[<p>Gamebryo鐨勬潗璐ㄧ郴緇?<br><br>涓涓ā鍨嬶紙鏈変竴澶у爢欏剁偣璺熺儲寮曟暟鎹粍鎴愶級鎻忕敾鐨勬柟寮忥紝璺熸潗璐ㄦ湁寰堝ぇ鐨勫叧緋匯?br>Gamebryo鎻愪緵浜嗕竴涓緢寮哄ぇ鐨勬潗璐ㄧ郴緇熴?br><br>棣栧厛gamebryo浣跨敤浜嗕竴涓嚜瀹氫箟鐨凱ipeline錛岃繖涓篃鏄湪涔嬪墠鐨勬枃绔犱腑浠嬬粛榪囩殑銆傚叾瀹炶繖涓狿ipeline灝辨槸澶у鏈甯哥敤鐨勪竴浜汼hader銆侴B甯垜浠葷粨鍑烘潵浜嗭紝騫跺仛鎴愪簡涓涓爣鍑嗙殑鏉愯川銆傝繖鍦℅B閲屽彨StandardMaterial銆?br><br>鏍囧噯鏉愯川璺烶ipeline鏄浉瀵瑰簲鐨勩備絾鏄爣鍑嗘潗璐ㄧ殑瀹炵幇鏄潪甯稿洶闅劇殑錛屽彲浠ユ煡闃匩iStandartMaterial錛屽ぇ綰︽湁5000澶氳浠g爜銆侴B浼氶鍏堟煡鎵句竴涓婼hader鏂囦歡澶逛笅鐨勯偅浜汼hader銆?br>榪欎簺Shader鐨勬枃浠跺悕鏄敱涓瀵規暟瀛?瀛楁瘝緇勬垚鐨勩傝繖浜涙枃浠墮兘鏄笉閲嶅鐨勶紝鍥犱負GB鍐呴儴閫氳繃Hash鐮佸緱鍑鴻繖浜涘箋傚鏋滃湪Shader鏂囦歡澶逛笅娌℃湁錛岄偅涔圙B浼氭妸褰撳墠鐨勬覆鏌撴柟寮忚褰曞埌榪欎釜Shader涓幓錛屼綔涓虹紦瀛樸?br><br>褰撶劧浣犱篃鍙互鏋勫緩鑷繁鐨凪aterial緋葷粺錛屾瘮濡侴B鐨凬iCommonMaterial閲屼篃緇欏嚭浜嗕竴浜涙瀯寤鴻嚜宸辨潗璐ㄧ郴緇熺殑渚嬪瓙錛屼笉榪囪繖鏄潪甯稿鏉傦紝鍩烘湰鎬濇兂閮芥槸闇瑕佺淮鎶や竴涓猄hader鏍戙?br><br>涓嶈繃鑷繁鍐橲hader鏄潪甯告柟渚跨殑錛屼綘鍙互鐢≧enderMonkey鎴栬匰haderFX錛屾妸鍋氬ソ鐨?.fx鏂囦歡鏀懼埌Shader鏂囦歡澶逛腑錛孧AX鍐嶆鎵撳紑鐨勬椂鍊欏氨浼氭壘鍒拌繖浜汼hader銆傝緹庡伐浣跨敤璧鋒潵闈炲父鐨勬柟渚褲?br></p> 鍏充簬浼樺寲鐨勯棶棰樻葷粨 <br><br>寮曟搸鏈韓鍋氱殑寰堝ソ錛屼笉浼氬閫熷害浜х敓澶ぇ褰卞搷銆備絾鏄嬌鐢ㄨ呭線寰浼氱敱浜庡紑鍙戠粡楠岃繃浣庣瓑絳夊洜绱狅紝瀵艱嚧娓告垙榪愯閫熷害澶參銆傝繖閲屾湁浜涙槸鍥犱負瀵笹amebryo緋葷粺鐨勪笉鐔熸倝閫犳垚銆?br><br><span style="COLOR: red">緹庢湳涓婏細</span>緹庢湳濡傛灉涓嶇啛鎮堿rt鏂囨。錛屼笉鐔熸倝鍥懼艦鎶鏈殑璇濓紝鐢ㄤ換浣曞紩鎿庨兘鏄櫧鎼傚叾瀹炲ぇ閮ㄥ垎鐨勬氮璐歸兘鏄編鏈犳垚鐨勩備笅闈㈠厛璇磋緹庢湳鐨勪紭鍖?br>1.娉ㄦ剰Mesh鐨勯綺掑害錛屼粈涔堟剰鎬濆憿銆傚氨鏄富瑕佷笉瑕佹湁澶灝忕墿浠躲備笁瑙掗潰寰堝皯鐨凪esh錛屽鏋滄潗璐ㄧ浉鍚岀殑璇濓紝瀹屽叏鍙互鍚堝茍璧鋒潵銆?br><br><br>1.鍏充簬Gamebryo涓殑update涓巙pdate select銆傝繖鏄痑vobject閲岄噸瑕佺殑涓や釜鍑芥暟錛屼篃鏄疓amebryo涓洿鏂板満鏅浘鏈閲嶈鐨勫嚱鏁頒箣涓銆倁pdate select鏄仛浜嗕紭鍖栫殑錛屼篃灝辨槸璇達紝濡傛灉鍙樻崲鐭╅樀娌℃湁鍋氬嚭鍙樻崲鐨勮瘽錛実amebryo涓嶄細鏇存柊world淇℃伅錛岃繖鏍蜂細鑺傜渷涓瀹氱殑鏃墮棿錛屾墍浠ュ鏋滄槸闈欐佺墿浣擄紝璇蜂紭鍏堜嬌鐢║pdateSelect.<br>鐩稿弽鍔ㄦ佺墿浣擄紝姣斿浜虹墿銆傚鏋滅‘瀹氫粬涓瀹氫笉鏄潤鎬佺殑璇濓紝璇蜂笉瑕佷嬌鐢║pdateSelect錛屽洜涓鴻繖浼氬鍋氫竴嬈″鍙樻崲鐭╅樀鏄惁鏀瑰彉鐨勫垽鏂紝榪欐槸娌℃湁鎰忎箟鐨勩?br><br> <h1 class=ContentTitle><strong>gamebryo涓殑綆$嚎 </strong></h1> 璺熷紑婧愬浘褰㈠紩鎿庝竴鏍鳳紝鍟嗕笟寮曟搸鐨勪環鍊煎湪浜庡府鍔╀綘鍋氫簡寰堝鍓嶄漢鐨勭Н绱?br>gamebryo灝辨槸榪欐牱鐨勫紩鎿庯紝褰撶劧unreal鍋氱殑鏇村姞鐗涖傝繖鏄悗璇濅簡錛屽叧浜巙nreal鐨勫仛娉曟垜灝嗕互鍚庡垎鏋愩?br><br>鍏堟潵璇磋gamebryo錛岃窡Ogre涓嶄竴鏍風殑鏄紝gamebryo鏈変竴涓嚜宸辨墍璋撶殑pipeline銆?br>Ogre寰堢伒媧伙紝褰撶劧鐏墊椿鐨勪唬浠鋒槸寰堝涓滆タ闇瑕佷綘鑷繁鍋氾紝gamebryo涔熷緢鐏墊椿錛屼笉榪囦綔涓哄晢涓氬紩鎿庯紝浠栧悓鏃跺府浣犲仛浜嗗緢澶氫簨鎯呫?br><br><br><img src="http://blog.guibian.com/attachments/month_0903/g2009310112240.jpg"><br><br> <h1 class=ContentTitle><strong>Gamebryo涓殑瀵硅薄緋葷粺涔嬩竴錛氭櫤鑳芥寚閽堝拰寮曠敤璁℃暟 </strong></h1> 鏈枃鏄竴緋誨垪Gamebryo搴曞眰緋葷粺鐨勪粙緇嶃?br>Gamebryo闄や簡鏄竴涓己澶х殑娓告垙寮曟搸涔嬪錛屽湪鐮旂┒浠栫殑婧愪唬鐮佸悓鏃訛紝鎴戞儕鍠滅殑鍙戠幇浠栨彁渚涗簡寰堝鍊煎緱鎴戜滑鍦ㄥ啓浠g爜榪囩▼涓涔犲拰鍊熼壌鐨勪笢瑗褲?br>鏈枃灝辨槸鏉ヤ粙緇嶈繖浜涘簳灞傜郴緇熷埌搴曟槸鍦ㄧ┛鎻掑湪寮曟搸涓嬌鐢ㄧ殑銆?br>Gamebryo鐨勫簳灞傜郴緇熻繍鐢ㄤ簬浠栨墍鏈夌殑妯″潡鍜屽伐鍏蜂腑錛屼粬鎻愪緵浜嗗璞$鐞嗭紝寮曠敤璁℃暟錛屽璞℃寔涔呭寲錛堟湁鐐瑰儚Java鐨勪笢瑗匡級浠ュ強蹇熺殑榪愯鏃跺瀷鍒漿鎹㈢瓑鍔熻兘銆?br><br><br><br>棣栧厛鎴戜滑鏉ヤ粙緇嶄竴涓嬪紩鐢ㄨ鏁頒笌鏅鴻兘鎸囬拡銆?br><br>鍦℅amebryo涓墍鏈夊熀紜NiRefObject鐨凮bject閮戒細琚鏁扮殑銆傝繖灝辨剰鍛崇潃Object瀛樺偍鐫鎵鏈夊紩鐢ㄤ粬鐨勬暟鐩傚鏋滈渶瑕侀暱鏈熺殑寮曠敤涓涓璞$殑璇濓紝闇瑕佸0鏄庝竴涓紩鐢紝騫跺湪緇撴潫鏃墮噴鏀炬帀鏀瑰紩鐢ㄣ傚綋寮曠敤璁℃暟絳変簬闆剁殑鏃跺欙紝瀵硅薄浼氳嚜宸遍噴鏀炬帀鎵鐢寵鐨勫唴瀛樺尯銆備笉榪囪繖鏍風湅璧鋒潵鐢ㄨ搗鏉ヤ細姣旇緝鐑︼紝濂藉湪GB鎻愪緵浜?#8220;smart pointers”鏉ュ噺杞葷箒鏉傜殑宸ヤ綔銆?br><br>瑕佹敞鎰忕殑鏄墍鏈夌戶鎵縉iRefObject鐨勫瓙綾婚兘蹇呴』閫氳繃鍫嗘潵鍒嗛厤錛屼笉鐢ㄤ嬌鐢ㄤ簬闈欐佺被鍨嬪璞℃垨鑰呮爤涓婂璞°傚洜涓哄綋寮曠敤璁℃暟涓洪浂鐨勬椂鍊欙紝璇ュ璞′細琚垹闄わ紝鑰屽垹闄ら潤鎬佸璞℃垨鑰呮爤涓婂璞¢兘浼氬鑷村唴瀛橀敊璇垨鑰呭穿婧冦?<br><br>璋堣皥鎵歸噺娓叉煋 <br><br>     闅忕潃鏄懼崱瀵勫瓨鍣ㄦ暟閲忚秺鏉ヨ秺澶?鎵歸噺娓叉煋宸茬粡涓嶆槸浠涔堢█濂囩殑浜嬫儏浜?<br><br>      鍏跺疄,鏍規嵁鎴戞渶榪戠爺絀跺彂鐜?鏆撮洩鏃╁湪DX8鏃朵唬灝卞仛浜嗘壒閲忔覆鏌撹繖浠朵簨,鎵浠ヤ竴涓懼崰鎹簡RTS鑰佸ぇ鐨勫湴浣?寰堝噾宸х殑鏃跺欐垜鐜板湪鐨勯」鐩篃鏄釜RTS綾繪父鎴?鎵浠ユ壒閲忔覆鏌撳氨鎴愪簡涓涓簾寰呰В鍐崇殑闂.<br><br>      Gamebryo鏄敮鎸丮eshInstancing鐨勶紝灝辨槸妯″瀷鐨勬壒閲忔覆鏌撱?br>    鍝︼紝鍏堜粙緇嶄笅DX9鏀寔鐨勫嚑縐岻nstancing鐨勬柟寮忓惂錛屼竴縐嶅彨HardwareInstancing錛屼腑鏂囧彨紜歡鎵歸噺娓叉煋鍚э紝鍏跺疄鏄疍X9鎻愪緵浜哠etStreamSourceFreq榪欎釜鎺ュ彛錛岃浣犲彲浠ユ妸涓涓暟鎹簮澶氭浣跨敤錛屾瘮濡傛垜浠鎵歸噺闇鐒朵竴緇勬ā鍨嬶紝姣忎釜妯″瀷鏈夎嚜宸辯殑Translation淇℃伅錛屼絾鏄粬浠殑欏剁偣鍜岀儲寮曟暟鎹槸鍏辯敤鐨勩備緥濡傦紝浣犺鎵歸噺10涓繖鏍風殑妯″瀷鐨勮瘽錛屽彧瑕佹娊鍙栧嚭浠栦滑涓嶅悓鐨勬暟鎹笂浼犲埌涓涓暟鎹簮涓紝鐒跺悗欏剁偣鍜岀儲寮曟暟鎹噸澶嶄嬌鐢ㄥ崄嬈″氨鍙互浜嗐?br>    鍙﹀涓縐嶆槸ShaderInstancing錛屾墍璋揝hader Instancing錛屾剰鎬濆氨鏄紝鎶奍nstancing鏁版嵁浼犲埌vertex shader閲屽幓錛屽湪娓叉煋鐨勬椂鍊欓氳繃涓浜涙柟娉曠儲寮曞埌榪欎簺Instancing鏁版嵁錛岀敤鏉ュ欏剁偣鏁版嵁鍋氫笉鍚岀殑鎻忕敾銆?br><br>Gamebryo甯ф覆鏌撶郴緇熻瑙?<br><br>濡傛灉娌¤閿欑殑璇濓紝鎴戞浘緇忓啓榪囦竴綃囧叧浜嶨amebryo甯ф覆鏌撶郴緇熺殑鍐呭銆備及璁″綋鏃跺墫鏋愮殑涓嶆槸澶緇嗐傞偅涔堢幇鍦ㄦ垜鍦ㄨ繖閲岄噸鏂拌涓涓嬪撫娓叉煋緋葷粺錛屽笇鏈涜兘鎶婁粬灝嗘竻妤氥傜敱浜庢垜鎵嬪ご娌℃湁浠g爜錛岃屼笖鍙堟槸鍟嗕笟寮曟搸錛屾墍浠ュ緢澶氬嚱鏁版垜騫朵笉鏄畬鏁寸殑浣跨敤gamebryo涓殑錛岃兘浣跨敤浼唬鐮佺殑鍦版柟鎴戝敖閲忎嬌鐢ㄤ吉浠g爜銆?br><br>濂斤紝棣栧厛鍐嶆寮鴻皟涓嬪撫娓叉煋緋葷粺鏄昏緫緋葷粺錛屼弗鏍間笂璺熸覆鏌撴病鏈変換浣曞叧緋伙紝灝辨槸璇村鏋滀綘鍙互緇曞紑甯ф覆鏌撶郴緇燂紝涓鏍峰彲浠ョ敾鍑烘兂鎻忕敾鐨勪笢瑗匡紝鍙笉榪嘒B榪欐牱鍋氱殑鐩殑鏄嬌寰楁覆鏌撳眰嬈℃洿鍔犳竻鏅幫紝鐏墊椿浜嗐?br>OGRE涔熸湁綾諱技鐨勬蹇碉紝鍦∣gre涓篃鍙互瀹氫箟鑷繁鐨勫眰錛屼絾鏄敱浜庢病鏈夊撫娓叉煋緋葷粺錛屾墍浠ュ眰嬈′笂涓嶅Gamebryo鐏墊椿錛屾柟渚挎槗鐢ㄣ?br><br>RenderFrame 鍜孯enderStep鎴戝氨涓嶅啀璧樿堪浜嗭紝鍥犱負榪欎袱涓蹇靛緢綆鍗曪紝閲岄潰涔熸病鏈夊疄璐ㄦх殑鍐呭銆備綘鎯蟲庝箞鐞嗚В閮藉彲浠ワ紝鍓嶈呮槸鍚庤呯殑瓚呴泦錛孲tep鍙堟槸Click鐨勮秴闆嗐?br><br>璇︾粏璇翠竴涓婻enderClick鍜孯enderView銆俁enderView鍙互鐞嗚В鎴愭垜浠墍瑕佹弿鐢葷殑鐗╀歡銆俁enderView閲屾湁AppendScene榪欐牱鐨勬帴鍙o紝灝卞彲浠ユ妸鎵鏈夋兂View鐨勪笢瑗塊兘鎸傛帴涓婂幓銆俁enderView閲岃繕鏈変釜閲嶈鐨勫伐鍏峰彨鍋欳uller錛孋uller鏄仛浠涔堢敤鐨勫憿錛熸槸璐熻矗瑁佸壀鐨勶紝榪欓噷鐨勮鍓槸閫昏緫涓婄殑瑁佸壀錛屽氨鏄簿紜埌鍑犱綍浣撶駭鍒殑瑁佸壀銆傦紙娉ㄦ剰涓嶆槸涓夎闈㈢駭鍒殑錛夈侰uller鏄綔涓篜rocessor琚姞榪涘幓鐨勶紝灝辨槸涓涓鍓殑榪囩▼銆侰uller鎻愪緵浜嗕竴浜涙娊璞℃帴鍙o紝鏉ユ弧瓚崇敤鎴風殑鑷畾涔夎鍓傚氨鏄浣犲彲浠ユ牴鎹綘鐨勯渶瑕佹潵鍦ㄦ覆鏌撳墠榪涜瑁佸壀銆?br><br>涓嬮潰璇村埌RenderClick錛孯enderClick綺劇‘鐨勫瓧闈㈡剰鎬濆氨鏄竴嬈℃弿鐢伙紝榪欎釜綾葷殑鍔熻兘涔熷熀鏈槸榪欐牱錛岀煡閬撲簡瑕佺敾鐨勪笢瑗匡紝浣嗘槸瑕佺敾鍒頒粈涔堜笂鍘誨氨闇瑕丷enderClick浜嗭紝姣忎釜RenderClick瀵瑰簲浜嗕竴涓猂enderTarget銆傚氨鏄鎻忕敾鐨勫湴鏂廣備竴涓弿鐢葷殑榪囩▼鏄繖鏍風殑錛岄鍏堟壘鍒癛enderTarget灝辨槸瑕佹弿鐢葷殑鍦版柟錛屽洜涓哄鏋滄槸鍚庢湡鐗規晥錛屾湁鏃跺欎細鏈夊涓猂enderTarget銆?br>鐭ラ亾浜嗚鎻忕敾鐨勫湴鏂瑰悗灝卞紑濮嬫弿鐢諱簡錛岄鍏堜粠RenderView閲屾壘鍑鴻鎻忕敾鐨勫嚑浣曚綋錛堣繖閲岀殑鍑犱綍浣撳凡緇忔槸琚鍓繃鍚庣殑鍑犱綍浣撲簡錛夛紝鐒跺悗Click閲屽啀鍋氫竴涓鐞嗭紝榪欓噷鐨勫鐞嗕篃鏄釜Processor錛屽氨鏄剰鍛崇潃鐢ㄦ埛鍙互瀹氫箟銆傝繖閲屽鐞嗙殑鐩殑鍩烘湰涓婃槸瀵圭墿浣撳仛涓涓帓搴忋傝繖閲屼笉浼氬啀瀵瑰嚑浣曚綋榪涜瑁佸壀浜嗭紝鑰屾槸榪涜綾諱技Alpha鎺掑簭絳夎繖鏍風殑宸ヤ綔錛屼繚璇佺墿浣撹姝g‘鐨勬寜灞傛鐢誨嚭鏉ャ傛渶緇堝緱鍒扮殑RenderObjList灝辨槸鐢ㄦ潵鎻忕敾鐨勪簡銆?br><br>鏁翠釜榪囩▼鍏跺疄榪樻槸姣旇緝綆鍗曠殑錛岀粰鐢ㄦ埛寰堝鑷繁閫夋嫨鐨勬満浼氥傛槸涓涓笉閿欑殑璁捐銆?<br><br>GameBryo ---- 妯℃澘綾?br> <p>GameBryo鎻愪緵浜嗕竴澶熀鏈殑妯℃澘瀹瑰櫒綾伙紝榪欎簺瀹瑰櫒鍦ㄦ暣涓簱鍐呬嬌鐢ㄣ?/p> <p><font size=4><strong>Lists</strong></font></p> <p><font size=3>NiTPointerList瀵硅薄鍙互鍖呭惈鍜岀鐞嗘寚閽堬紝鏅鴻兘鎸囬拡錛屼互鍙婂叾浠栦換浣曞ぇ灝忓皬浜庣瓑浜庢寚閽堢殑鍏冪礌錛岃閾捐〃鍙互鏈夋晥鐨勬彃鍏ュ拰鍒犻櫎鎵鏈夊厓绱狅紝浠ュ強姝e悜閬嶅巻鍜屽弽鍚戦亶鍘嗘墍鏈夊厓绱狅紝鍚屾牱鍙互閫氳繃緇欏畾鍊兼煡鎵懼厓绱犵殑瀹炰綋鍜屾墍鍦ㄤ綅緗紝NiTPointerList鐨勫厓绱犵殑鍐呭瓨鏄粠涓涓叡浜唴瀛樹腑鍒嗛厤鐨勶紝浠庤屾彁楂樼被鐨勬墽琛岄熷害鍜屽唴瀛樻晥鐜囷紝濡傛灉閾捐〃鍏冪礌澶т簬鎸囬拡錛岀▼搴忓彲浠ヤ嬌鐢∟iTObjectList.</font></p> <p><font size=4><strong>Array</strong></font></p> <p><font size=3>NiTArray瀵硅薄瀹炵幇鍕掑嚑涔庡彲浠ュ寘鍚墍鏈夊璞$殑鍔ㄦ佹暟緇勶紝璇ユ暟緇勫彲浠ョ緝鏀撅紝騫朵笖鍙互鍘嬬緝(閫氳繃杞Щ鍏冪礌鏉ョЩ闄ょ┖絀洪棿)銆傚唴緗被鍨?char*, float, int絳?浣跨敤NiTPrimitiveArray銆侼iMemObject媧劇敓鍑虹殑綾誨瀷浣跨敤NiTobjectArray銆傛敞鎰廚iTArray鐨勫厓绱犱笂闄愪負65535錛涘鏋滃ぇ浜庤闄愬埗錛屼嬌鐢∟iTLargeArray媧劇敓鍑虹殑綾伙紝姣斿NiTLargePrimitiveArray鎴朜iTLargeObjectArray銆?/font></p> <p><font size=4><strong>Map</strong></font></p> <p><font size=3>NiTPointMap瀵硅薄瀹炵幇鍕掑搱甯岃〃鐨勫姛鑳斤紝鍏佽浠諱綍綾誨瀷鐨勯敭鍊兼潵褰卞皠鍒版寚閽堬紝鏅鴻兘鎸囬拡錛屼互鍙婂叾浠栦換浣曞ぇ灝忓皬浜庣瓑浜庢寚閽堢殑鍏冪礌錛屽茍鑳藉揩閫熺殑鍌ㄥ瓨鍜屾煡鎵鵑敭鍊煎錛屼笉榪囦笉鑳戒嬌鐢ㄥ瓧絎︿覆閿搱甯岃〃錛岃孨iTStringPointerMap瀵硅薄鏄笓涓烘璁捐鐨勶紝NiTPointMap鍜孨iTStringPointerMap鐨勫厓绱犲唴瀛樹篃鏄粠涓涓叡浜唴瀛樹腑鍒嗛厤鐨勶紝浠庤屾彁楂樻墽琛岄熷害鍜屽唴瀛樻晥鐜囷紝濡傛灉map鍏冪礌澶т簬鎸囬拡錛岀▼搴忓彲浠ヤ嬌鐢∟iTMap鍜孨iTStringMap</font></p> <p><strong><font size=4>StringMap</font></strong></p> <p><font size=3>NiTStringMap鍜孨iTStringPointerMap瀵硅薄鐨勫嚱鏁板拰NiTMap鍜孨iTPointerMap椋庢牸綾諱技錛屼絾鏄厑璁稿瓧絎︿覆浣滀負閿紝騫朵笖閫氳繃瀛楃涓叉瘮杈冩潵榪涜閿暎鍒?/font></p> <p><strong><font size=4>FixedStringMap</font></strong></p> <p><font size=3>NiTFixedStringMap瀵硅薄鍑芥暟鍜孨iTMap瀵硅薄椋庢牸鐩鎬技錛屼絾鏄厑璁窷iFixedString瀵硅薄浣滀負閿?/font></p> <p><strong><font size=4>Queue</font></strong></p> <p><font size=3>NiTQueue瀹炵幇鍕掑熀鏈墍鏈夌被鍨嬪璞$殑鍏堣繘鍏堝嚭闃熷垪錛屼絾涓嶆彁渚涙櫤鑳芥寚閽堬紝闇瑕佹敞鎰忛摼琛ㄥ彲浠ュ綋鍋氶槦鍒楁潵浣跨敤</font></p> <p><strong><font size=4>Set</font></strong></p> <p><font size=3>NiTSet瀹炵幇浜嗗熀鏈墍鏈夌被鍨嬬殑鏃犲簭闆嗗悎錛屼篃娌℃彁渚涙櫤鑳芥寚閽堬紝鍐呯疆綾誨瀷(char*, float, int絳?浣跨敤NiTPrimitiveSet銆侼iMemObject媧劇敓鍑虹殑綾誨瀷浣跨敤NiTobjectSet錛屾櫤鑳芥寚閽堝垯浣跨敤NiTObject鎴栬匩iTPrimitivePtrSet錛岃繖灝嗘紜殑澶勭悊寮曠敤璁℃暟銆?/font></p> <p><font size=4><strong>Pool</strong></font></p> <p><font size=3>NiTPool瀹炵幇浜嗗皬鍨嬪璞$殑姹狅紝浣垮緱紼嬪簭鑳介氳繃涓涓睜鏉ュ垎閰嶅皬鍨嬪璞★紝騫惰兘閲嶅浣跨敤錛岃屼笉鏄崟鐙殑鍘誨垎閰嶅拰閲婃斁涓涓皬鍨嬪璞?/font></p> <br><br>GameBryo ---- 鍦烘櫙鍥劇殑鍑犱綍鏇存柊<br><br> <p>涓涓▼搴忎細鍦ㄩ渶瑕佺殑鏃跺欐敼鍙樹竴涓妭鐐圭殑杞崲錛岃綆楄鑺傜偣鐨勬椂闂磋漿鎹紝浠ュ強璇ヨ妭鐐瑰瓙鑺傜偣鐨勫叾浠栬漿鎹㈠皢琚歡榪燂紝鐩村埌搴旂敤紼嬪簭璋冪敤渚嬭鐨剈pdate銆?/p> <p>update鏄珮鏁堜嬌鐢ㄦ繁搴︿紭鍏堟潵閬嶅巻瀛愬浘璁$畻涓栫晫杞崲鍜屼笘鐣屽寘鍥寸悆錛屼粠鑰屾渶澶ч檺搴︾殑鍑忓皯鑺傜偣鐨勮闂紝褰撳悜涓嬮掑綊鏃訛紝杞崲琚洿鏂幫紝鍖呮嫭鎵鏈夌殑鑷妭鐐癸紝褰撶煩闃墊洿鏂板悗錛屼笘鐣屽寘鍥寸悆閫氳繃閫掑綊璋冪敤榪斿洖</p> <p>鎬諱箣錛岃漿鎹㈠湪閫掑綊涓鏇存柊錛岃屽寘鍥寸悆鍦ㄩ掑綊榪斿洖鏃跺緱鍒?/p> <p>閫氬父澶у鏁扮殑瀵硅薄閮戒笉浼氱Щ鍔ㄧ殑錛屾墍鏈夊彧鏇存柊鍙檺浜庡皬閮ㄥ垎鍙互縐誨姩鐨勫璞°傚湪鍦烘櫙鍥劇殑鏁版嵁澶勭悊鍒濆鍖栦腑錛屽綋搴旂敤紼嬪簭浣跨敤鍒板満鏅浘鍓嶏紝鑷沖皯瑕佸鍦烘櫙鍥劇殑鏍硅妭鐐硅繘琛屼竴嬈′緥琛寀pdate錛岃繖鏍蜂繚璇佹墍鏈夎妭鐐圭殑涓栫晫淇℃伅鍙婃湰鍦頒俊鎭兘鏄渶鏂扮殑銆?/p> <p>鍦ㄥ簲鐢ㄧ▼搴忓撫鍒板撫鐨勮繍琛屼腑錛屽綋絎﹀悎涓嬮潰浠諱綍涓鏉℃椂錛屽簲鐢ㄧ▼搴忓繀欏昏皟鐢ㄥ璞?#8220;O”鐨剈pdate銆?/p> <p>·O琚粦瀹氬埌鐖朵翰鑺傜偣鎴栬呬粠鐖朵翰鑺傜偣瑙i櫎緇戝畾</p> <p>·O緇戝畾浜嗕竴涓柊瀛愯妭鐐規垨鑰呰В闄や簡涓涓瓙鑺傜偣鐨勭粦瀹?/p> <p>·O浠諱綍涓涓漿鎹㈣鏀瑰彉</p> <p>娉ㄦ剰涓涓嬶紝璋冪敤褰撳墠鍙戠埗浜茶妭鐐規垨鑰呬換浣曠鍏堣妭鐐圭殑update鍙互浠f浛褰撳墠鑺傜偣update鐨勮皟鐢ㄣ備緥濡傦紝濡傛灉瀵硅薄A緇戝畾浜嗗瓙鑺傜偣B鍜孋錛屽彧闇瑕佽皟鐢ˋ鐨剈pdate灝卞浜嗐傛病鏈夊繀瑕佽皟鐢ㄤ笁涓璞$殑update錛屽簲鐢ㄧ▼搴忎細浠ユ壒澶勭悊鐨勬柟寮忔洿鏂般?/p> <p>渚嬪錛屽綋搴旀壙闇瑕佹敼鍙樹簡涓涓椿鍔ㄨ鑹茬殑鎵鏈夌殑鍏寵妭鐭╅樀錛屼粬搴旇鎺ㄨ繜update鐩村埌鎵鏈夌殑鏀瑰彉閮藉畬鎴愶紝騫朵笖鍙渶瑕佽皟鐢ㄤ竴嬈¤鑹叉牴鑺傜偣鐨剈pdate銆?/p> <p>浣嗘槸錛屾敞鎰弖pdate灝介噺鍦ㄥ満鏅浘鐨勬洿涓嬪眰璋冪敤錛屽鏋滀竴涓満鏅浘姣忓撫鍙湁涓涓彾瀛愯鏀瑰彉錛岄偅涔堣皟鐢ㄦ牴鑺傜偣鐨剈pdate灝卞お榪囧垎浜嗭紝榪欏皢闄嶄綆鎬ц兘銆?/p> <br>GameBryo ---- 緗戞牸鏁版嵁鍏變韓<br><br> <p><font size=3>涓轟簡涓栫晫涓璞″彧闇瑕佸皯閲忕殑欏剁偣錛屼竴媯墊爲鍙互鐢ㄦ潵浠h〃鍦烘櫙鍥撅紝姣忎釜瀵硅薄琚崟鐙〃鐜頒負鏍戜腑鐨勮妭鐐廣備絾鏄紝鍦ㄧ粷澶у鏁板満鏅浘涓紝浼氬嬈″嚭鐜頒竴涓渶瑕佸ぇ閲忓唴瀛樻潵瀛樺偍鐨勫鏉傚璞★紝緇濆ぇ澶氭暟鐨勫唴瀛樻槸娑堣楀湪綰圭悊鍜岄《鐐規暟鎹笂錛屾瘮濡傜汗鐞嗗潗鏍囧拰娉曠嚎銆?/font></p> <p><font size=3>濡傛灉涓涓簲鐢ㄧ▼搴忛渶瑕佸浠借繖鏍蜂竴涓璞★紝鏄湁鍙兘閫氳繃鍏變韓鐨凬iDataStream鏉ュ垎浜ā鍨嬬┖闂寸殑鍑犱綍淇℃伅錛岄鑹詫紝綰圭悊鍜屽叾浠栭鑹層傛崲鍙ヨ瘽璇達紝鑻ュ共緗戞牸瀵硅薄鍙兘鍒嗕韓NiDataStream瀵硅薄錛屽湪榪欑鎯呭喌涓嬶紝鍦烘櫙鍥炬槸鏈夊悜闈炲驚鐜浘錛岃屼笉鏄竴媯墊爲銆?/font></p> <p><font size=3>鍦ㄥ嚑浣曟暟鎹叡浜殑鎯呭喌涓嬶紝鍙剁綉鏍煎璞″叡浜玁iDataStream瀵硅薄鐨勬ā鍨嬬┖闂寸綉鏍箋備絾鏄?涓や釜妯″瀷鏁版嵁鐨勫疄渚嬫槸鍦ㄤ笘鐣岀殑涓嶅悓浣嶇疆,鍥犱負浠栦滑浠h〃鐨勫涓綉鏍煎璞?騫朵笖姣忎釜鍓湰鑷繁鍗曠嫭鐨勮漿鎹€?/font></p> <p><font size=3>榪欎簺綆$悊鏄湪搴旂敤紼嬪簭鐨勫唴閮ㄩ忔槑澶勭悊鐨勨斺斿簲鐢ㄧ▼搴忓彧闇瑕佸緩绔嬩袱涓綉鏍煎璞′嬌鐢ㄥ悓涓涓狽iDataStream瀵硅薄銆傜綉鏍煎璞$敋鑷寵姣斾竴濂楁渶灝忕殑緗戞牸鏁版嵁灝忕殑澶氾紝鍥犱負緗戞牸瀵硅薄涓嶅儚鏁版嵁嫻侊紝涓嶅瓨鍦ㄦ瘡涓《鐐圭殑鏁版嵁</font></p> <p><font size=3>涓嬮潰鐨勫浘璞℃槸涓涓吀鍨嬬殑鎯呭喌錛?/font></p> <p> </p> <div forimg="1"><img class=blogimg border=0 src="http://hiphotos.baidu.com/%BA%DA%B5%C4%B7%A2%D7%CF/pic/item/741a0302a5cfd7294afb5115.jpg" small="0"></div> <p> </p> <p> </p> <p>                                            (涓や釜緗戞牸瀵硅薄浣跨敤鍚屼竴涓狽iDataStream)</p> <p><font size=3>涓や釜鍙剁綉鏍煎璞″垎浜竴涓疆鑳嶯iDataStream瀵硅薄鐨勯《鐐逛綅緗拰娉曠嚎銆備竴涓綉鏍煎璞″搴斿埌鑷杞︾殑鍓嶈疆錛屽彟涓涓搴斿埌鑷杞︾殑鍚庤疆銆侼iDataStream瀵硅薄鑷韓瀛樺偍鐨勭綉鏍奸《鐐圭殑浣嶇疆鍜屾硶綰胯鍏變韓錛屼袱涓綉鏍煎璞¢兘淇濆瓨琛ㄧ幇鑷繁緗戞牸鐨勮漿鎹€?/font></p> <p><font size=3>娉ㄦ剰浠ヤ笅錛孏amebryo涓嶄負浠諱綍綾誨瀷鐨凬iAVObject鎻愪緵澶氱埗浜茬殑鍔熻兘銆傜粦瀹氫竴涓凡緇忔嫢鏈夌埗鑺傜偣鐨勫璞錛屼細瀵艱嚧C鑷姩鑴辯鍘熸潵鐨勭埗鑺傜偣</font></p> <br>GameBryo ---- Working with Properties<br><br> <p><font size=3>Gamebryo閫氳繃涓濂楃浉浜掔嫭绔嬬殑娓叉煋鎬ц川涓烘瘡涓兘娓叉煋鐨勫彾瀛愬璞″畾涔変簡娓叉煋灞炴э紝姣忎竴涓覆鏌撳睘鎬ч兘涓鴻兘娓叉煋鐨勫璞″畾涔変簡鏌愪竴鏂歸潰鐨勬覆鏌撶姸鎬侊紝騫朵笖閮芥槸NiProperty鐨勫瓙綾匯傚涓彲娓叉煋鐨勫璞″彲浠ュ叡浜覆鏌撳睘鎬с傞拡瀵逛竴涓璞$殑瀹屾暣娓叉煋鐘舵佹槸鎵鏈夊睘鎬х殑瀹屾暣緇勫悎銆傚綋灞炴х姸鎬佸璞″瓨鍦ㄤ笌NiRenderObject鍙跺瓙鑺傜偣鏃訛紝榪欎釜涓綋娓叉煋灞炴у氨琚粦瀹氬湪鍦烘櫙鍥劇殑浠諱綍NiAVObject涓娿傝繖姝e紡鐢ㄤ簬姣忎釜鍙覆鏌撳彾瀛愬璞′駭鐢熷睘鎬х姸鎬佺殑姣忎釜NiAVObject鐨勫睘鎬с備竴涓睘鎬ц緇戝畾鍒頒竴涓狽iAVObject灝嗗獎鍝嶆墍鏈夊瓙鏁頒笂鐨勫瓙瀵硅薄(鍖呮嫭瀹冭嚜宸?錛岄櫎闈炲湪瀛愭爲涓悓鏍風殑灞炴х被鍨嬭鍏朵粬灞炴ф墍鏇夸唬銆傚鏋滄病鏈変換浣曞睘鎬ц璁劇疆鍒板満鏅浘鐨勫璞′笂錛岃瀵硅薄浼氶氳繃鍚堥傜殑榛樿灞炴ф潵緇樺埗銆傛瘡涓睘鎬х被鍨嬬殑榛樿鐩稿綋浜庝負璇ョ被鍨嬭緗竴涓粯璁ゆ瀯閫狅紝姣忎釜NiAVObject閮藉寘鍚簡涓涓粦瀹氫笌瀹冪殑鎵鏈夊睘鎬х殑閾捐〃錛屼竴涓狽iAVObject鍙兘娌℃湁浠諱綍灞炴х粦瀹氾紝涔熸湁鍙兘緇戝畾涓涓垨澶氫釜灞炴с傛墍鏈夌殑鏂瑰紡杈懼埌涓涓狽iAVObject鑳界粦瀹氱殑姣忔牱灞炴х殑鏈澶у箋傛敞鎰忕‘淇濆簲鐢ㄧ▼搴忎換浣曟椂鍊欓兘涓嶈兘緇欏崟涓鐨凬iAVObject緇戝畾涓涓互涓婂凡緇忕被鍨嬬殑灞炴с備竴涓崟涓鐨凬iAVObject緇戝畾宸茬粡綾誨瀷鐨勪竴涓互涓婄殑灞炴т細瀵艱嚧濂囨殑瑙嗚鏁堟灉鍜屾湭鐭ョ殑闂銆?/font></p> <p><strong><font size=5>緇樺埗灞炴х被鍨?/font></strong></p> <p><font size=3>NiProperty瀵硅薄鍦℅amebryo涓殑鏁版嵁灞傛濡備笅錛?/font></p> <p><font size=3>NiObject</font></p> <p><font size=3>              NiProperty</font></p> <p><font size=3>                              NiAlphaProperty</font></p> <p><font size=3>                              NiDitherProperty</font></p> <p><font size=3>                              NiFogProperty</font></p> <p><font size=3>                              NiMaterialProperty</font></p> <p><font size=3>                              NiShadeProperty</font></p> <p><font size=3>                              NiSpecularProperty</font></p> <p><font size=3>                              NiStencilProperty</font></p> <p><font size=3>                              NiTexturingProperty</font></p> <p><font size=3>                              NiVertwxColorProperty</font>灝卞涓婇潰璁ㄨ鐨勶紝灞炴ц緗粠鏍瑰埌鍙跺眰嬈°備竴涓緇戝畾鍒癗iAVObject瀵硅薄鐨勫睘鎬т細褰卞搷璇ュ璞″強瀹冪殑瀛愬璞°傞櫎闈炲湪鏇翠綆鐨勫瓙鏍戜腑緇戝畾璇ョ被鍨嬬殑鍏朵粬灞炴с傚洜姝わ紝涓涓彲娓叉煋鍙惰妭鐐圭殑褰撳墠鐘舵佹槸鐢卞満鏅浘涓畠紲栧厛鐨勯摼鎵鍐沖畾鐨?/p> <p><font size=3>                              NiWireFramProperty</font></p> <p><font size=3>                              NiZBufferProperty</font></p> <p><strong><font size=5>鏇存柊灞炴у埌闆嗗悎鐗╀綋涓?/font></strong></p> <p> </p> <p>Gamebryo浼氳鏁翠釜鍦烘櫙鍥句繚鎸佺粦瀹氬睘鎬э紝緇戝畾鍦ㄦ瘡涓彲娓叉煋鍙跺璞$殑灞炴х姸鎬佹槸鍖呭惈鎵鏈夋彁渚涚殑綾誨瀷鐨勫睘鎬х殑鏁扮粍錛岃繖鏍鳳紝姣忎釜鍙覆鏌撶殑瀵硅薄鍖呭惈涓涓洿鎺ユ寚鍚戠敤鏉ョ粯鍒剁殑娓叉煋灞炴х殑鎸囬拡銆傝繖寰堥噸瑕侊紝鍥犱負娓叉煋鍙秹鍙婂彲娓叉煋鐨勫彾瀵硅薄錛岃屼笉鏄暣涓満鏅浘銆備簬鏄瘡涓彲娓叉煋瀵硅薄鐨勫睘鎬х姸鎬侀兘鏄戶鎵垮叾浠栧彲娓叉煋瀵硅薄鐨勬墍鏈夊睘鎬х殑鍓湰銆?/p> <p>Gamebryo浣跨敤涓涓郴緇熺被浼間嬌鐢∟iAVObject::Update鍑芥暟鏉ユ洿鏂拌繖浜涘睘鎬х姸鎬佸璞°傝繖涓被浼肩殑娓叉煋灞炴у嚱鏁版槸NiAVObject::UpdateProperties銆傚綋鍑虹幇涓嬮潰鐨勬儏鍐礥pdateProperties蹇呴』鍦╫bejct"O"鎴栦換浣曚竴涓粬鐨勭鍏堣皟鐢ㄤ笅涓嬈℃覆鏌?/p> <p>·涓涓互O涓牴鑺傜偣鐨勬爲鍒氳鍒涘緩</p> <p>·涓涓睘鎬ц緇戝畾鍒癘鎴栦粠O縐婚櫎</p> <p>·O琚粦瀹氬埌鑺傜偣P鎴栦粠P涓婅縐婚櫎</p> <p>娉ㄦ剰錛屽綋鍙敼鍙樹簡涓涓凡鏈夊睘鎬э紝搴旂敤紼嬪簭涓嶉渶瑕佽皟鐢║pdateProperties銆?/p> <p>瑕佸疄鐜版渶浣蟲ц兘錛岃繖浜沀pdateProperties鐨勮皟鐢ㄥ彲浠ヤ互鐩稿悓鐨勬柟寮忚繘琛屾壒澶勭悊鏉ユ墽琛屾壒澶勭悊鏇存柊,濡傛灉搴旂敤紼嬪簭灝嗗湪瀛愭爲涓婄粦瀹氭垨瑙i櫎緇戝畾璁稿灞炴э紝瀹冨繀欏昏皟鐢ㄦ墍鏈夌殑緇戝畾鎴栬В闄ょ粦瀹氬嚱鏁幫紝鐒跺悗鍦ㄥ瓙鏍戠殑鏍歸儴璋冪敤涓嬈pdateProperties錛岄氬父鐨勶紝鍥犱負灞炴у拰瀛愯妭鐐圭殑緇戝畾鍜岃В緇戞病鏈夋瘡涓甯ц繖鏍烽綣侊紝鎵浠pdateProperties瑕佹瘮姣忓撫縐瘡灞炴у揩鐨勫錛屼絾鏄浜庣▼搴忓憳銆傚皢澶氬嚭涓涓澶栫殑灝忚礋鎷呫?/p> <br>GameBryo ---- SoftParticles<br><br> <p>杞矑瀛愪富瑕佹槸涓轟簡瑙e喅綺掑瓙騫垮憡鐗屽拰鍦烘櫙鍑犱綍鐩鎬氦鏃訛紝浜х敓鐨勭敓紜竟緙橈紝濡備笅鍥劇儫闆句笌鍦伴潰鐩鎬氦鏃剁殑杈?img class=blogimg border=0 src="http://hiphotos.baidu.com/%BA%DA%B5%C4%B7%A2%D7%CF/pic/item/b117d366e9752f0faa184c1c.jpg" small="0"></p> <p>涓轟簡瑙e喅涓婇潰鐨勬儏鍐碉紝鎴戜滑闇瑕佺敤鍒板満鏅殑娣卞害淇℃伅錛屽涓嬪浘錛?/p> <p><img class=blogimg border=0 src="http://hiphotos.baidu.com/%BA%DA%B5%C4%B7%A2%D7%CF/pic/item/8561271ea6b9db344034171b.jpg" small="0"></p> <p>鍦ㄤ竴鑸殑娓叉煋綆$嚎涓紝鐐筆3灝辨槸浜х敓鐢熺‖杈圭殑鐐癸紝涓轟簡鏀瑰杽榪欑鎯呭喌錛孲oftParticles閫氳繃鏀瑰彉綺掑瓙鐨刟lpha鍊兼潵澶勭悊綺掑瓙鍚庨潰鐨勫満鏅紝榪欓噷浣跨敤浜嗚嚜瀹氫箟鐨剆hader甯擱噺鏉ュ喅瀹氳窛紱籨浠ヤ究鎴戜滑璋冩暣alpha鍊鹼紙d涓簑orld place涓級錛屼換浣曡窛紱誨師鍦烘櫙娣卞害澶т簬d鐨勭矑瀛愮浉绱犳垜浠皢涓嶅鐞嗕粬鐨刟lpha鍊?瀵瑰簲涓婂浘P1鐨勫叕寮?錛?/p> <p>涓婂浘涓偣P1姝eソ杈懼埌璇ヨ窛紱伙紝鐐筆1鍒癙3鐨刟lpha娣峰悎紼嬪害浼氶掑錛岃窛紱籨璁劇疆鐨勮秺灝忥紝閭f晥鏋滃氨瓚婃帴榪戜簬紜矑瀛愮殑鏁堟灉錛屽洜涓篜1鐨勬潯浠跺緢瀹規槗婊¤凍錛屽alpha鍊肩殑淇敼浼氬噺灝戯紝浣嗘槸濡傛灉璺濈璁劇疆鐨勮繃澶э紝閭2灝卞緢瀹規槗婊¤凍錛岃繖鏍峰鑷碙en/d浜х敓鐨勫煎緢灝忥紝璁╃矑瀛愬彉鐨勫緢閫忔槑錛岄犳垚鐨勭矑瀛愬緢紼鐤忥紝鍏蜂綋鐨勬晥鏋滆鑷繁鎵嬪姩璋冭妭銆?/p> <p>榪欑杈圭紭杞寲鐨勬柟寮忓彧鏄繎浼肩殑錛屽綋鍦烘櫙鐨勬硶綰夸簬鎽勫儚鏈烘柟鍚戦敜瀛愭椂浼氬け鏁堬紝褰撳嚭鐜拌繖縐嶆儏鍐墊椂錛岄殢渚跨矑瀛愪笌鐩鎬氦闈㈠緢鎺ヨ繎浜嗭紝浣嗗洜涓烘憚鍍忔満涓庣浉浜ら潰榪戜箮鍨傜洿錛岃岀矑瀛愮浉绱犵殑娣卞害媯嫻嬫槸娌夸笌鎽勫儚鏈烘柟鍚戠殑錛屼粠鑰屼駭鐢熶竴涓緢澶en鍊鹼紝瀵艱嚧浜嗘湰鏉ュ簲璇ユ垚涓篜3鏁堟灉鐨勭偣錛屾垚涓篜1銆?/p> <p>DEMO5涓被錛?span class=NDLSystemFont>SoftParticles錛?span class=NDLSystemFont>MRT_ColorDepthMaterial錛?span class=NDLSystemFOnt>SoftParticlesMaterial錛?span class=NDLSystemFont>SoftParticlesManager錛孧RT_ColorBlackMaterial</span></span></span></span></p> <p><span id="hvzpftn" class=NDLSystemFont><span id="hvzpftn" class=NDLSystemFont><span id="hvzpftn" class=NDLSystemFOnt><span id="hvzpftn" class=NDLSystemFont>SoftParticles::CreateScene()</span></span></span></span></p> <p><span id="hvzpftn" class=NDLSystemFont><span id="hvzpftn" class=NDLSystemFont><span id="hvzpftn" class=NDLSystemFOnt><span id="hvzpftn" class=NDLSystemFont>璐熻矗鍒涘緩鍦烘櫙錛屼粠Nif鏂囦歡涓幏鍙栧満鏅紝鎽勫儚鏈哄強綺掑瓙緋葷粺錛岃緗產lpha鎺掑簭錛屽墧闄わ紝鍙婇粯璁ゆ潗璐∕RT_ColorDepthMaterial, MRT_ColorDepthMaterial緇ф壙浜嶯iStandardMaterial錛岄噸杞戒簡鍑芥暟bool HandleFinalVertexOutputs()鍜屽嚱鏁癰ool HandleFinalPixelOutputs()錛岃繖涓や釜鍑芥暟鍒嗗埆鍦╲ertex shader鍜宲ixel shader鐨勬渶鍚庢墽琛岋紝閫氳繃HandleFinalVertexOutputs鍑芥暟錛屼負vertex shader鐨刼utput緇撴瀯澧炲姞鎴愬憳NiMaterialResource* pkVertOutViewTexCoord = Context.m_spOutputs->AddInputResource("float4", "TexCoord", "World", <br>"PosViewPassThrough");浣滀負綰圭悊鍧愭爣鐨勬牸寮忚緭鍑?/span></span></span></span></p> <p><span id="hvzpftn" class=NDLSystemFont><span id="hvzpftn" class=NDLSystemFont><span id="hvzpftn" class=NDLSystemFOnt><span id="hvzpftn" class=NDLSystemFont>NiMaterialNode* pkSplitterNode = GetAttachableNodeFromLibrary(<br>        "PositionToDepthNormal");<br>    kContext.m_spConfigurator->AddNode(pkSplitterNode);<br>    kContext.m_spConfigurator->AddBinding(pkViewPos,<br>        pkSplitterNode->GetInputResourceByVariableName("Input"));<br>    kContext.m_spConfigurator->AddBinding(<br>        pkSplitterNode->GetOutputResourceByVariableName("Output"),<br>        pkVertOutViewTexCoord);</span></span></span></span></p> <p><span id="hvzpftn" class=NDLSystemFont><span id="hvzpftn" class=NDLSystemFont><span id="hvzpftn" class=NDLSystemFOnt><span id="hvzpftn" class=NDLSystemFont>鑾峰緱鑷畾涔夊嚱鏁癙ositionToDepthNormal錛屽皢pkViewPos浣滀負浼犲叆鍙傛暟錛屾妸鏂板鐨刾kVertOutViewTexCoord浣滀負杈撳嚭鍙傛暟</span></span></span></span></p> <p><span id="hvzpftn" class=NDLSystemFont><span id="hvzpftn" class=NDLSystemFont><span id="hvzpftn" class=NDLSystemFOnt><span id="hvzpftn" class=NDLSystemFont>鑰孒andleFinalPixelOutputs鍒欏湪杈撳叆緇撴瀯涓鍔爁loat4 WorldPosProjected : TEXCOORD6;浠g爜濡備笅</span></span></span></span></p> <p><span id="hvzpftn" class=NDLSystemFont><span id="hvzpftn" class=NDLSystemFont><span id="hvzpftn" class=NDLSystemFOnt><span id="hvzpftn" class=NDLSystemFont>NiMaterialNode * pkInputResource;<br>    pkInputResource = kContext.m_spConfigurator->GetNodeByName("PixelIn");</span></span></span></span></p> <p><span id="hvzpftn" class=NDLSystemFont><span id="hvzpftn" class=NDLSystemFont><span id="hvzpftn" class=NDLSystemFOnt><span id="hvzpftn" class=NDLSystemFont>    NiMaterialResource* pkDepthFromVP = pkInputResource->AddOutputResource(<br>        "float4", "TexCoord", "World", "WorldPosProjected");</span></span></span></span></p> <p><span id="hvzpftn" class=NDLSystemFont><span id="hvzpftn" class=NDLSystemFont><span id="hvzpftn" class=NDLSystemFOnt><span id="hvzpftn" class=NDLSystemFont>鐒跺悗鍦ㄨ緭鍑虹粨鏋勪腑澧炲姞娣卞害棰滆壊錛岄氳繃WorldPosProjected鏉ヨ祴鍊鹼紝CreateScene()榪樺皢鍦烘櫙涓墍鏈夌殑綺掑瓙緋葷粺娣誨姞榪?span class=NDLSystemFont>SoftParticlesManager錛屾坊鍔犲畬鎵鏈夌殑ParticlesSystem鍚庯紝<span id="hvzpftn" class=NDLSystemFont>SoftParticlesManager閫氳繃Initialize()鍑芥暟錛屽垱寤洪粯璁ょ殑綺掑瓙鏉愯川錛屼互鍙?span class=NDLSystemFont>SoftParticlesManager鑷繁鐨凴nderView鍙奵lick,鐒跺悗閫氳繃InitializeScene()涓烘瘡涓矑瀛愮郴緇熻緗潗璐紝騫舵坊鍔犺繘RnderView,榪欓噷瑕佹敞鎰忔墽琛岄『搴?/span></span></span></span></span></span></span></p> <span id="hvzpftn" class=NDLSystemFont><span id="hvzpftn" class=NDLSystemFont><span id="hvzpftn" class=NDLSystemFOnt><span id="hvzpftn" class=NDLSystemFont>SoftParticles::CreateFrame()</span></span></span></span> <p><span id="hvzpftn" class=NDLSystemFont><span id="hvzpftn" class=NDLSystemFont><span id="hvzpftn" class=NDLSystemFOnt><span id="hvzpftn" class=NDLSystemFont><span id="hvzpftn" class=NDLSystemFont><span id="hvzpftn" class=NDLSystemFont><span id="hvzpftn" class=NDLSystemFont>璇ュ嚱鏁頒腑錛岄氳繃鑾峰彇鍚庡緙撳啿鐨勫睘鎬э紝鏉ュ垱寤虹浉鍚屼竴寮爐exture錛岀敤鏉ユ覆鏌撴繁搴︼紝涓嶈繃鏍煎紡瑕佽緗負NiTexture::FormatPrefs::SINGLE_COLOR_32錛岃〃紺?2浣嶇殑鍗曢氶亾棰滆壊錛岀敤R閫氶亾琛ㄧず錛岀劧鍚庢柊寤轟竴涓猂enderGroup錛岃鍖呭惈鍘熸潵鐨勫悗澶囩紦鍐蹭互鍙婂厛寤虹殑浣嶅浘緙撳啿錛岃鍦烘櫙鍚屾椂娓叉煋鍒拌繖涓や釜緙撳啿涓婏紝騫跺皢綰圭悊緙撳啿浣滀負<span id="hvzpftn" class=NDLSystemFont>SoftParticlesManager涓垱寤虹殑click鐨勪竴涓緭鍏?/span></span></span></span></span></span></span></span></p> <br>GameBryo ---- MSAA<br> <p>MSAA(MultiSampling Anti-Aliasing)</p> <p>GB涓璏SAA瀹炵幇鐨勫叧閿唬鐮佸熀鏈槸鐩存帴鐢ㄧ殑D3D錛岄櫎浜嗚嚜宸辯殑娓叉煋鎵規緋葷粺錛孌X9涓嶈兘鐩存帴瀵規覆鏌撳埌綰圭悊鍚敤MSAA錛屼絾鏄彁渚涗簡娓叉煋琛ㄩ潰surface,鍙互瀵箂urface鍚敤MSAA銆?/p> <p>瀹炵幇鐨勫叧閿楠ゅぇ鑷村涓?/p> <p>1銆侼iRenderedTexture::Create鍒涘緩涓涓拰鑳屾櫙緙撳啿涓鏍峰ぇ鐨凴enderTexture錛孨iRenderTargetGroup::Create鍒╃敤RenderTexture鍒涘緩RenderTarget錛屽睆騫曟渶緇堟覆鏌撶殑鐩爣灝辨槸璇enderTarget錛屾垜浠渶瑕佺殑涔熸槸灝哅SAA鍚庣殑鏁版嵁緇橰enderTexture</p> <p>2銆傞氳繃D3D鐨凜reateRenderTarget鎸夌収鑷畾鐨凪SAA綰у埆鏉ュ垱寤簊urface錛屽埄鐢╯urface鐨刡uffer鍒涘緩鍙﹀涓涓狹SAARenderTarget</p> <p>3銆傛柊寤轟竴涓猂enderView錛孏B涓敤鐨凬iScreenFillingRenderView錛屽氨鏄疍3D涓洓涓《鐐圭粍鎴愮殑鐭╁艦錛岃RenderView緇戝畾涓涓猙aseTexture涓烘楠?鎵鍒涘緩鐨凴enderTexture鐨凬iTexturingProperty錛屽垱寤篟enderClick鎸傛帴璇enderView錛屽茍璁劇疆涓涓狢allBackFunc錛岀劧鍚庡皢璇lick鎻掑埌mainClick鍚庨潰錛岃繖鏍風敤涓ass鏉ュ畬鎴怣SAA</p> <p>4銆備富click灝嗙敾闈㈡覆鏌撳埌寮鍚疢SAA鐨凪SAARenderTarget錛岀劧鍚庤繘鍏ユ柊click鐨凜allBackFunc錛岃幏鍙朚SAARenderTarget鐨刡uffer錛岀敤D3D鐨凷tretchRect澶嶅埗鏁版嵁鍒癛enderTexture錛岃繖鏍鋒柊click灝變細娓叉煋鍑鴻繘琛孧SAA鍚庣殑texture</p> <img src ="http://m.shnenglu.com/CrazyDev/aggbug/113034.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/CrazyDev/" target="_blank">CrazyDev</a> 2010-04-20 00:04 <a href="http://m.shnenglu.com/CrazyDev/articles/113034.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>GameByro娓叉煋緋葷粺鍓栨瀽錛堣漿錛?/title><link>http://m.shnenglu.com/CrazyDev/articles/113020.html</link><dc:creator>CrazyDev</dc:creator><author>CrazyDev</author><pubDate>Mon, 19 Apr 2010 14:37:00 GMT</pubDate><guid>http://m.shnenglu.com/CrazyDev/articles/113020.html</guid><wfw:comment>http://m.shnenglu.com/CrazyDev/comments/113020.html</wfw:comment><comments>http://m.shnenglu.com/CrazyDev/articles/113020.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/CrazyDev/comments/commentRss/113020.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/CrazyDev/services/trackbacks/113020.html</trackback:ping><description><![CDATA[<div class="hvzpftn" id=blog_text class=cnt>閾炬帴錛?a href="http://m.shnenglu.com/rise-worlds/archive/2009/04/22/80688.html">http://m.shnenglu.com/rise-worlds/archive/2009/04/22/80688.html</a> <h2></h2> <h3>寮曡█錛?/h3> <p>GameByro浣滀負涓嬈炬涓栦唬寮曟搸錛屼嬌鐢ㄤ簡澶嶆潅鐨勬潗璐ㄧ郴緇燂紝鐢ㄦ潵婊¤凍鍚勭鍚勬牱鐨勯渶姹傘傛潗璐ㄤ唬琛ㄤ簡鐗╀綋鍙楀埌鍏夌収鍚庢墍鍛堢幇鍑虹殑璐ㄦ劅錛岃岃繖縐嶈川鎰熷湪璁$畻鏈哄浘褰㈠涓渶瑕佺潃鑹蹭唬鐮佹潵瀹屾垚錛屾墍浠ュ綋鍓嶆祦琛岀殑鍥懼艦寮曟搸璁捐鏄嬌鐢ㄨ娓叉煋瀵硅薄鐨勬潗璐ㄤ笌shader鐩稿叧鑱旓紝GameByro涔熶笉渚嬪銆侴ameByro鐨勬潗璐ㄧ郴緇熷彲浠ラ氳繃shade tree鐢熸垚shader紼嬪簭錛屽寮轟簡搴旂敤紼嬪簭灞傚鍙紪紼嬫覆鏌撶綰跨殑鎺у埗鑳藉姏銆?/p> <h4>娓叉煋鏋舵瀯姒傝錛?/h4> <p>鍦℅ameByro涓紝瀵硅薄琛ㄩ潰鐨勮壊褰┿佺汗鐞嗐佸厜婊戝害銆侀忔槑搴︺佸弽灝勭巼銆佹姌灝勭巼銆佸彂鍏夊害絳夊彲瑙嗗睘鎬т笌浼犵粺鐨勬潗璐ㄧ郴緇熷垎紱伙紝鐙珛鐨勬垚涓轟簡瀵硅薄鐨勬覆鏌撳睘鎬э紙NiProperty錛夛紝鑰屾潗璐紙NiMaterial錛変粎鐢ㄦ潵瀵圭潃鑹茬▼搴忕殑灝佽錛岃繖鏍峰氨瀹炵幇浜嗘覆鏌撴暟鎹拰娓叉煋鏂規硶鐨勫垎紱伙紝闄嶄綆浜嗚﹀悎鎬с傚涓婃墍璇寸殑榪欎簺鍙灞炴у湪Gamebyro涓細灝佽鎴愪竴涓睘鎬у璞★紝鍦ㄥ簲鐢ㄧ▼搴忎腑濡傛灉瀵瑰璞℃寕杞借繖涓睘鎬у璞★紝鍦℅PU紼嬪簭涓氨鍙互璁塊棶榪欎釜灞炴у璞$殑鍊箋傛覆鏌撳睘鎬у璞″彲浠ュ湪鍒涘緩鏃舵寚瀹氬叾綾誨瀷錛屽綰圭悊銆佹誕鐐廣佺煩闃點佸悜閲忔垨鏁扮粍錛屾澶栦竴浜涘叏灞鎬х殑瀵硅薄涔熷彲浠ラ氳繃鍦⊿hader涓敤璇剰澹版槑涓哄叏灞object瀵硅薄錛屽鐏厜鍜屾憚褰辨満絳夛紝榪欐牱灝卞彲浠ヤ互鍚屾牱鐨勬柟寮忔潵璁塊棶榪欎簺瀵硅薄涓婄殑灞炴с?/p> <p>GameByro姣忎竴甯х殑娓叉煋錛圢iRenderFrame錛夊垝鍒嗕負澶氫釜姝ラ錛圢iRenderStep錛夛紝姣忎釜姝ラ鍙堝寘鍚緢澶氫釜鎵癸紙NiRenderClick錛夛紝NiRenderFrame灝佽浜嗕笂灞傚娓叉煋緋葷粺璋冪敤鐨勬帴鍙o紝鑰孨iRenderClick鍒欎唬琛ㄤ簡鍥懼艦紜歡鐨勪竴嬈$粯鍒舵搷浣滐紙瀵規覆鏌撻槦鍒椾腑鎵鏈夌殑瀵硅薄鐨勯《鐐圭紦瀛樿皟鐢―rawPrimitive錛夛紝褰撳簲鐢ㄧ▼搴忚皟鐢∟iRenderFrame鐨凞isplay鎺ュ彛鏃? NiRenderFrame浼氫緷嬈¤皟鐢ㄦ瘡涓涓狽iRenderStep鐨凴ender()鎺ュ彛錛孨iRenderStep灝變細鎵ц鎵鏈夌殑NiRenderClick鎿嶄綔銆?/p> <p>瀵逛簬姣忎釜NiRenderClick鏉ヨ錛岄鍏堣璁劇疆瑙嗗彛鍜屾覆鏌撶洰鏍囷紝涔熷氨鏄覆鏌撴暟鎹祦鐨勫叆鍙e拰鍑哄彛銆傝鍙e緩绔嬩互鍚庡氨鍙互閫氳繃鍏寵仈鐨勬憚褰辨満瀵瑰満鏅浘涓殑瀵硅薄榪涜瑁佸壀錛堥粯璁ょ殑鏈夎鍙h鍓拰閬尅瑁佸壀錛屾澶栬繕鍙互閫氳繃鍥炶皟鍑芥暟鍔犲叆鑷繁鐨勮鍓柟寮忥級錛屽皢鏈瑁佸壀鐨勫璞℃斁鍏ユ覆鏌撻槦鍒椼傜劧鍚嶨ambyro浼氭牴鎹潗璐ㄦ潵瀵規覆鏌撻槦鍒椾腑鐨勫璞¤繘琛屾帓搴忥紝璁╂潗璐ㄧ浉鍚岀殑瀵硅薄澶勪簬鐩擱偦浣嶇疆錛岃繖鏍峰彲浠ュ噺灝戝垏鎹hader鐨勫紑閿銆?/p> <p><a href="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GameByro_91A9/clip_image002_2.jpg"><img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image002 border=0 alt=clip_image002 src="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GameByro_91A9/clip_image002_thumb.jpg" width=244 height=105></a></p> <p>濡傚浘鎵紺轟負甯ф覆鏌撶郴緇熺殑緇撴瀯鍥撅紙綆鍖栫増錛?/p> <h4>鏉愯川緋葷粺錛?/h4> <p>GameByro涓殑鏉愯川浠h〃娓叉煋瀵硅薄鎵閲囩敤鐨勬柟娉曘傚墠闈㈣榪囥傜汗鐞嗗睘鎬у寘鍚簡鐫鑹叉墍闇鐨勫師鏂欙紝閭d箞鏉愯川灝辨寚瀹氫簡瀵硅繖浜涘師鏂欑殑鍔犲伐鏂規硶銆傚熀浜庡綋鍓嶅彲緙栫▼娓叉煋綆$嚎璁捐錛屾潗璐ㄥ氨鎴愪負榪炴帴瀵硅薄涓嶨PU紼嬪簭鐨勪腑闂村眰錛屽簲鐢ㄧ▼搴忓彲浠ラ氳繃鏉愯川灝唖hader搴旂敤浜庡嚑浣曚綋銆?/p> <p>NiMaterial綾繪槸鎵鏈夋潗璐ㄧ殑鍩虹被錛岃繖涓被閫氳繃涓涓狹ap鏉ヤ繚瀛樺綋鍓嶅簲鐢ㄧ▼搴忎腑鎵鏈塏iMaterial鐨勬寚閽堬紝褰撶劧榪欎釜Map鏄潤鎬佷篃灝辨槸璇寸浉褰撲簬鍏ㄥ眬鍙橀噺錛岄氳繃static NiMaterial* NiMaterial:: GetMaterial(const NiFixedString& kName)鎺ュ彛瀵硅繖涓叏灞鐨凪ap榪涜璁塊棶銆備篃灝辨槸璇達紝褰撳墠鐜涓墍鏈夌殑NiMaterial瀵硅薄鏄氳繃NiMaterial綾繪潵綆$悊鐨勩傛澶朜iMaterial綾昏繕閫氳繃闈欐佹垚鍛樺彉閲忎繚瀛樹簡涓涓伐浣滆礬寰勶紙鍗硈hader鏂囦歡璺緞錛夛紝閫氳繃榪欎釜璺緞鍔犺澆shader鏂囦歡銆侼iMaterial灝卞儚鏄竴涓腑浠嬶紝鍏ㄦ潈浠g悊瀵瑰璞$殑娓叉煋宸ヤ綔銆傜敤鎴峰彲浠ラ氳繃閲嶈澆NiMaterial鏉ュ疄鐜拌嚜宸辯殑娓叉煋鏈哄埗銆傛瘡涓狽iMaterial閮芥槸鍏ㄥ眬鎬х殑錛屽彲浠ヤ綔鐢ㄤ簬澶氫釜鐢氳嚦鏄墍鏈夌殑娓叉煋瀵硅薄錛屼絾涓涓覆鏌撳璞′篃鍙互鎷ユ湁澶氫釜NiMaterial錛屼絾鍙兘鏈変竴涓浜庢縺媧葷姸鎬佺殑NiMaterial銆?/p> <p>NiMaterial鐨勬淳鐢熺被NiFragmentMaterial鎻愪緵浜嗗鍙紪紼嬫覆鏌撶綰垮畬鏁寸殑鎺у埗鏈哄埗錛屽唴閮ㄤ繚瀛樹簡NiShader鐨勫搱甯岃〃銆佷竴涓狽iGPUProgramCache鏁扮粍銆傚茍涓擭iFragmentMaterial浼氱敓鎴愪竴涓敤鏉ョ紪璇慓PU紼嬪簭鐨剆hade tree錛堝悗闈細鏈夎В閲婏級銆傝繖鏍風殑璇濓紝姣忎釜NiFragmentMaterial鍙互瀵瑰簲澶氫釜shader紼嬪簭錛岃繖鏍峰氨鎻愪緵浜嗕竴縐嶆満鍒訛紝鍦ㄨ繍琛屾椂鏍規嵁涓嶅悓鐨勮繍琛岀幆澧冨拰娓叉煋瀵硅薄涓嶅悓鐨勭姸鎬侊紝鏉ラ夋嫨鍚堥傜殑shader紼嬪簭銆傚湪NiRenderClick渚濇娓叉煋鍙闆嗕腑鐨勬瘡涓璞℃椂錛岄鍏堜細鍒ゆ柇鍏舵槸鍚﹂渶瑕佽娓叉煋鐨勬爣璁幫紙flag錛夛紝濡傛灉闇瑕佽娓叉煋錛屽垯浣跨敤NiMaterial::IsShaderCurrent鎺ュ彛鍒ゆ柇褰撳墠shader錛堜笂涓嬈℃覆鏌撴墍浣跨敤鐨剆hader錛夋槸鍚︽湁鏁堬紝鎵璋撴湁鏁堝氨鏄粛鐒跺瓨鍦ㄥ茍涓斿彲浠ュ簲鐢ㄤ簬鏈鐨勬覆鏌撳璞★紝濡傛灉鏃犳晥錛屽垯浼氳皟鐢∟iMaterial::GetCurrentShader鑾峰緱shader錛岀敤浜庢湰嬈℃覆鏌撱侼iMaterial::GetCurrentShader浼氭牴鎹覆鏌撳璞$殑灞炴у拰褰撳墠鐜紜歡鏉′歡鏉ラ夋嫨鍚堥傜殑shader紼嬪簭銆傚綋鐒訛紝鍙互閫氳繃閲嶈澆IsShaderCurrent鍜孏etCurrentShader鎺ュ彛鏉ユ寚瀹氳嚜宸辯殑鏈夋晥鎬у垽鏂鍒欏拰濡備綍閫夋嫨shader紼嬪簭鐨勬柟妗堛?NiFragmentMaterial鎻愪緵浜嗕竴濂楁惌寤簊hade tree鐨勬鏋訛紝鐢ㄦ埛鍙互閫氳繃閲嶈澆鏉ユ惌寤鴻嚜宸辯殑shade tree錛屽綋鐒訛紝濡傛灉涓嶆兂閫氳繃shade tree鐨勫艦寮忕敓鎴恠hader紼嬪簭涔熷彲浠ワ紝浣跨敤NiSingleShaderMaterial鍙互浠庢枃浠剁敓鎴恠hader紼嬪簭銆?/p> <p><strong>Shade Tree</strong><strong>錛?/strong></p> <p>浠涔堟槸shade tree鍛紵鎴戜滑閫氬父緙栧啓鐨剆hader浠g爜鏄嚎鎬ф墽琛岀殑錛屽嵆姣忎釜pass嫻佺▼鎵ц鐨勬槸鏂囨湰涓婂畾涔夊ソ鐨剆hader嫻佺▼錛屾瘡涓孌祍hader鍔熻兘妯″潡鏄寜涓瀹氶『搴忎緷嬈℃墽琛岀殑銆傚鏋滈渶瑕佷慨鏀規祦紼嬩腑鐨勬煇涓閮ㄥ垎灝遍渶瑕佹洿鏀圭浉鍏崇殑shader浠g爜騫墮噸鏂扮紪璇戙傝宻hade tree灝唖hader浠g爜浠ユ爲褰㈢粨鏋勭粍緇囪搗鏉ワ紝姣忎竴涓猻hader浠g爜鍧楋紙涓鑸槸涓涓嚱鏁幫級閮戒細琚紪璇戞垚涓涓妭鐐癸紝閫氳繃瀹氫箟杈撳叆鍙橀噺鍜岃緭鍑哄彉閲忔潵鎻愪緵鏁版嵁嫻佺殑鍏ュ彛鍜屽嚭鍙o紝榪欎簺鑺傜偣鐨勬彃鍏ュ拰鍒犻櫎鍙互閫氳繃搴旂敤紼嬪簭鏉ユ帶鍒訛紝浠庤岀伒媧葷殑鎺у埗鏁翠釜娓叉煋榪囩▼銆傝繖鏍穝hader紼嬪簭涓殑涓浜涙牳蹇冩ā鍧楀彲浠ョ敱緹庢湳閫氳繃宸ュ叿鐢熸垚錛岀劧鍚庢彃鍏ュ埌shade tree涓紝鍙杈撳叆鍜岃緭鍑虹殑鎺ュ彛涓嶅彉錛屽氨鏃犻』淇敼鍏朵粬浠g爜錛屼粠鑰岄檷浣庝簡緹庢湳寮鍙憇hader鐨勯棬妲涖?/p> <p>GameByro閫氳繃浠ヤ笅鍑犱釜綾繪惌寤簊hade tree:</p> <p>l NiMaterialConfigurator錛歴hade tree琚皝瑁呭湪榪欎釜瀵硅薄涓紝Uniform constants琚皝瑁呭湪NiMaterialResource涓紝鑰孨iMaterialNode灝佽浜嗙浉鍏崇殑shader浠g爜錛屾墍鏈夌殑璧勬簮鍜岃妭鐐歸氳繃NiMaterialResourceBinding榪炴帴璧鋒潵銆傚綋鎵鏈夌殑榪炴帴閮界‘绔嬩互鍚庯紝NiMaterialConfigurator浼氳皟鐢‥valuate鎺ュ彛鐢熸垚GPU紼嬪簭鍜屼竴涓緭鍏niform璧勬簮鐨勯泦鍚堛?/p> <p>l NiMaterialFragmentNodes錛氳繖涓被鍖呭惈浜嗕竴涓猻hader浠g爜鐗囨鐨勯泦鍚堬紝榪欎簺浠g爜鐗囨涓轟笉鍚岀殑騫沖彴鍜岀紪紼嬭璦鎵緙栧啓銆傝繖灝變負shader紼嬪簭鍛樻彁渚涗簡鏇村ぇ鐨勭伒媧繪э紝鐢ㄤ互鎺у埗浠栦滑鐨勪唬鐮佸湪涓嶅悓騫沖彴鍜屽浘褰㈢‖浠朵笂鐨勮〃鐜般備緥濡傦細鍦ㄩ珮绔鉤鍙板彲浠ラ噰鐢ㄩ珮綰х殑shader model鎻愪緵鏇村ソ鐨勬晥鏋滐紝鑰屽湪浣庣騫沖彴涓婂彲浠ュ叧闂竴浜涚壒鏁堟潵鍔犲揩閫熷害銆?/p> <p>l NiMaterialNodeLibraries錛氳繖涓被鏄竴涓狽iMaterialNode鐨勯泦鍚堬紝鍏跺疄涔熷氨鏄竴涓猻hader搴撱傚畠鍏佽shade tree鑺傜偣瀹屽叏鍩轟簬鏁版嵁椹卞姩銆俿hader搴撶殑鐢熸垚鍙互閫氳繃涓ょ鏂瑰紡錛岃В鏋怷ML鏂囦歡鎴栫敤XML鏂囦歡鐢熸垚C++浠g爜銆侴ameByro鎻愪緵浜嗙浉鍏崇殑瑙f瀽鍣ㄥ拰浠g爜鐢熸垚鍣ㄣ?/p> <p>l NiMaterialResources錛歴hade tree涓殑Uniform constants錛屾敮鎸佸縐嶆暟鎹被鍨嬶紝鍖呮嫭Constant銆丳redefined銆丄ttribute銆丟lobal銆丱bject銆?/p> <p><strong>鍥哄畾綆$嚎鐨勬覆鏌擄細</strong></p> <p>GameByro鏀寔鍥哄畾綆$嚎鐨勬覆鏌擄紝鍏剁汗鐞嗘販鍚堣繃紼嬪涓嬨?/p> <p><a href="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GameByro_91A9/clip_image004_2.jpg"><img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image004 border=0 alt=clip_image004 src="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GameByro_91A9/clip_image004_thumb.jpg" width=166 height=244></a></p> <p>鍥哄畾綆$嚎鐨勭潃鑹插鐞嗘祦紼?/p> <p>涓婂浘寰堟竻妤氱殑鏄劇ず鍑轟簡姣忎釜stage鐨勬搷浣滐紝騫寵鐨勮〃紺轟袱寮犵汗鐞嗙殑閲囨牱鏄悓鏃惰繘琛岀殑錛岀壒瀹氭儏鍐典笅鍙寵竟鐨勭汗鐞嗗彲鑳借蹇界暐銆?/p> <p>澶ч儴鍒嗘儏鍐典笅錛屽簲鐢ㄧ▼搴忎笉浼氫嬌鐢ㄤ笂闈㈡墍鏈夌殑stage錛屽紑鍚垨鑰呭叧闂偅涓猻tage鍙互鐢卞簲鐢ㄧ▼搴忔潵鎸囧畾銆?/p> <p>浠ヤ笅涓哄閲嶉噰鏍風殑鍘熺悊鍥?</p> <p><a href="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GameByro_91A9/clip_image006_2.jpg"><img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image006 border=0 alt=clip_image006 src="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GameByro_91A9/clip_image006_thumb.jpg" width=244 height=238></a></p> <p>鍥哄畾綆$嚎鐨勭汗鐞嗗閲嶉噰鏍?/p> <h5>緙虹渷鐨勭潃鑹插鐞嗘祦紼嬶細</h5> <p>GameByro鎻愪緵浜嗕竴涓粯璁ょ殑鐫鑹插鐞嗘祦紼嬶紝灝佽鍦∟iMaterial鐨勬淳鐢熺被NiStandardMaterial涓紝榪欎釜綾繪墽琛岀被浼間簬鍥哄畾綆$嚎鐨勬祦紼嬶紝鍦ㄤ笉鍚岄樁孌靛皢綰圭悊閲囨牱銆佸茍灝嗛噰鏍峰埌鐨勬暟鎹販鍚堝埌鏈緇堢殑緇撴灉涓幓銆?/p> <p>GameByro榛樿鐨勬潗璐ㄧ郴緇熺殑鐗規у涓嬶細</p> <ul> <li>Skinned and unskinned transformations. Skinned transformations can support up to 30 bones per draw call. <li>Vertex colors <li>Base maps <li>Normal maps <li>Parallax maps <li>Dark maps <li>Detail maps <li>Bump environment maps <li>Gloss maps <li>Glow maps <li>Decal maps (up to 3) <li>Cubic and spherical environment maps <li>Point/Spot/Directional/Ambient lights contributing to the diffuse, specular, and ambient color. Up to 8 total lights. Per-pixel or per-vertex. <li>Projected light maps. Clipped or unclipped. (Up to 3) <li>Projected shadow maps. Clipped or unclipped. (Up to 3) <li>Texture transforms per map. <li>Per-vertex fog </li> </ul> <p>涓嬪浘鏄劇ず涓轟笉鍚岀殑綰圭悊銆佺伅鍏夈佹潗璐ㄥ睘鎬х殑緇勫悎榪囩▼錛屼笉榪囬渶瑕佹敞鎰忕殑鏄紝瑙嗗樊璐村浘鍜屽嚬鍑歌創鍥懼睘浜庣壒孌婄殑鎯呭喌錛屽畠浠粎浠呭獎鍝嶅埌綰圭悊閲囨牱鐨刄V鍧愭爣錛岃屽茍闈炵洿鎺ュ鏈鍚庣殑棰滆壊鍊間駭鐢熻礎鐚傝宸創鍥句細鏀瑰彉鎵鏈夎創鍥鵑噰鏍風殑UV鍧愭爣錛岃屽嚬鍑歌創鍥句粎瀵圭幆澧冭創鍥劇殑UV浜х敓褰卞搷銆?/p> <p><a href="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GameByro_91A9/clip_image008_2.jpg"><img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image008 border=0 alt=clip_image008 src="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GameByro_91A9/clip_image008_thumb.jpg" width=236 height=244></a></p> <p>浠ヤ笂嫻佺▼瀹屽叏鐢眘hade tree鏋勫緩錛孨iStandardMaterial鎻愪緵浜嗗ぇ閲忕殑鍑芥暟鎺ュ彛鐢ㄤ簬瀵規瘡涓祦紼嬬殑鎺у埗錛岀敤鎴峰彲浠ラ氳繃閲嶈澆鐩稿叧鐨勬帴鍙o紝鎻掑叆鑷繁鐨剆hade tree鑺傜偣錛屼慨鏀規瘡涓姝ョ殑鎿嶄綔鎴栧鐞嗚繃紼嬨備緥濡傦細</p> <p>virtual bool HandleBaseMap(Context& kContext, NiMaterialResource* pkUVSet,</p> <p>NiMaterialResource*& pkDiffuseColorAccum,</p> <p>NiMaterialResource*& pkOpacity, bool bOpacityOnly);</p> <p>褰撶劧錛屾暣涓祦紼嬬殑欏哄簭鍜岀粨鏋勪慨鏀硅搗鏉ユ瘮杈冨洶闅撅紝濡傛灉鏈夐渶瑕佸彲浠ュ畾鍒惰嚜宸辯殑鏉愯川緋葷粺錛屾惌寤鴻嚜宸辯殑shade tree銆?/p> <p>NiStandardMaterial鎻愪緵浜嗚嫢騫插洖璋冨嚱鏁幫紝榪欎簺鍑芥暟鍙互鍔ㄦ佺殑淇敼嫻佺▼錛屽垎鍓睵ASS錛屽shader榪愯澶辮觸榪涜瀹歸敊銆?/p> <p>l SplitPerPixelLights/SplitPerVertexLights:榪欎袱涓嚱鏁板垎鍒綔鐢ㄤ簬閫愰《鐐瑰厜鐓у拰閫愬儚绱犲厜 鐓э紝褰撶墿浣撴墍鍙楃殑鍏夋簮鏁伴噺澶錛岃秴榪囦簡欏剁偣鎴栧儚绱犵潃鑹插櫒鐨勮兘鍔涙椂錛岄氳繃榪欎簺鍑芥暟鍙互灝嗗け璐ョ殑pass鍒嗗壊鎴愪袱涓紝濡傛灉鍒嗗壊鍑虹殑pass浠嶇劧涓嶈兘鎵ц錛岄偅涔堝嚱鏁頒細琚掑綊璋冪敤錛岀洿鍒版瘡涓猵ass鍙湁涓涓厜婧愪負姝€?/p> <p>l SplitTextureMaps錛氳繖涓嚱鏁頒細鎶婂綰圭悊閲囨牱鐨刾ass榪涜鍒嗗壊錛屽綋綰圭悊鏌ヨ榪囧鏃訛紝欏剁偣鎴栧儚绱犵潃鑹插櫒灝變細榪囦簬澶嶆潅錛岃繖鏃跺氨鍙兘瀵艱嚧shader榪愯澶辮觸銆傛鍑芥暟鍙兘榪唬涓嬈★紝鐢熸垚涓涓澶栫殑pass銆?/p> <p>l DropParallaxMap錛氳繖涓嚱鏁扮敤鏉ヤ粠鍑犱綍浣撲笂縐婚櫎瑙嗗樊璐村浘錛屼笖涓嶄駭鐢熼澶栫殑pass銆?/p> <p>l DropParallaxMapThenSplitLights錛氳繖涓嚱鏁伴鍏堣皟鐢―ropParallaxMap縐婚櫎瑙嗗樊璐村浘錛岀劧鍚庝竴鐩磋皟鐢⊿plitPerPixelLights鐩村埌澶辮觸涓烘銆?/p> <h5>NiMaterialInstance錛?/h5> <p>NiMaterial騫朵笉鏄洿鎺ヤ笌NiRenderObject鐩稿叧鑱旓紝鑰屾槸緇忚繃浜哊iMaterialIstance榪欎釜涓棿灞傦紝鐢卞畠鏉ヤ唬鐞嗗皢NiMaterial鍏寵仈鍒板嚑浣曚綋錛屽畠璐熻矗璋冪敤NiMaterial涓篘iRenderObject鐢熸垚NiShader錛岄氳繃鏀瑰彉NiMaterialIstance涓婄殑鎺ュ彛SetMaterialNeedsUpdate錛屽彲浠ュ喅瀹氭瘡涓甯iRenderObject鎵浣跨敤鐨勬潗璐ㄦ槸鍚﹂渶瑕佽鏇存崲錛岄氳繃鎺ュ彛SetDefaultMaterialNeedsUpdateFlag錛屽彲浠ュ喅瀹氬綋鍓嶆潗璐ㄦ墍闇鐨勬暟鎹紙鍗沖綋鍓嶆覆鏌撴祦紼嬫墍闇鐨勬暟鎹級鏄惁瑕佽鏇存柊銆傝繖鏍鋒瘡涓狽iMaterialIstance鍙兘琚竴涓狽iRenderObject鎵鎷ユ湁錛岃屽涓狽iMaterialIstance鍙互鍏變韓涓涓狽iMaterial錛岃繖鏍峰氨鍑忓皯浜嗛噸澶嶅垱寤篘iMaterial鐨勬椂闂村拰絀洪棿涓婄殑寮閿錛屽悓鏃墮檷浣庝簡娓叉煋瀵硅薄涓潗璐ㄤ箣闂寸殑鑰﹀悎搴︺?/p> <p>濡備笅涓烘潗璐ㄧ郴緇熺殑綾葷粨鏋勭畝鍖栧浘錛?/p> <p><a href="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GameByro_91A9/clip_image010_2.jpg"><img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image010 border=0 alt=clip_image010 src="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GameByro_91A9/clip_image010_thumb.jpg" width=244 height=184></a></p> <h4>娓叉煋灞炴э細</h4> <p>鍓嶉潰鎻愬埌榪囷紝GameByro灝嗘覆鏌撴墍闇瑕佸姞宸ョ殑鏁版嵁鍏ㄩ儴灝佽鍦ㄤ簡NiProperty涓紝鍙鍦╯hader涓敤鎸囧畾鐨勮娉曡繘琛屽0鏄庯紝灝卞彲浠ヨ闂繖浜涘睘鎬х殑鍊箋?/p> <p>鐩墠寮曟搸涓凡緇忓畾涔変簡12縐嶅睘鎬э紝鍧囨淳鐢熻嚜NiProperty錛屽垎鍒唬琛ㄦ覆鏌撴暟鎹殑12縐嶄笉鍚岀被鍨嬶細</p> <p>l <a href="mk:@MSITStore:D:%20妗岄潰%20Gamebryo.chm::/Reference/CoreLibs/NiMain/NiMain_Class_Reference/NiAlphaProperty.htm"><u><font color=#0000ff>NiAlphaProperty</font></u></a></p> <p>l <a href="mk:@MSITStore:D:%20妗岄潰%20Gamebryo.chm::/Reference/CoreLibs/NiMain/NiMain_Class_Reference/NiDitherProperty.htm"><u><font color=#0000ff>NiDitherProperty</font></u></a></p> <p>l <a href="mk:@MSITStore:D:%20妗岄潰%20Gamebryo.chm::/Reference/CoreLibs/NiMain/NiMain_Class_Reference/NiFogProperty.htm"><u><font color=#0000ff>NiFogProperty</font></u></a></p> <p>l <a href="mk:@MSITStore:D:%20妗岄潰%20Gamebryo.chm::/Reference/CoreLibs/NiMain/NiMain_Class_Reference/NiMaterialProperty.htm"><u><font color=#0000ff>NiMaterialProperty</font></u></a></p> <p>l <a href="mk:@MSITStore:D:%20妗岄潰%20Gamebryo.chm::/Reference/CoreLibs/NiMain/NiMain_Class_Reference/NiRendererSpecificProperty.htm"><u><font color=#0000ff>NiRendererSpecificProperty</font></u></a></p> <p>l <a href="mk:@MSITStore:D:%20妗岄潰%20Gamebryo.chm::/Reference/CoreLibs/NiMain/NiMain_Class_Reference/NiShadeProperty.htm"><u><font color=#0000ff>NiShadeProperty</font></u></a></p> <p>l <a href="mk:@MSITStore:D:%20妗岄潰%20Gamebryo.chm::/Reference/CoreLibs/NiMain/NiMain_Class_Reference/NiSpecularProperty.htm"><u><font color=#0000ff>NiSpecularProperty</font></u></a></p> <p>l <a href="mk:@MSITStore:D:%20妗岄潰%20Gamebryo.chm::/Reference/CoreLibs/NiMain/NiMain_Class_Reference/NiStencilProperty.htm"><u><font color=#0000ff>NiStencilProperty</font></u></a></p> <p>l <a href="mk:@MSITStore:D:%20妗岄潰%20Gamebryo.chm::/Reference/CoreLibs/NiMain/NiMain_Class_Reference/NiTexturingProperty.htm"><u><font color=#0000ff>NiTexturingProperty</font></u></a></p> <p>l <a href="mk:@MSITStore:D:%20妗岄潰%20Gamebryo.chm::/Reference/CoreLibs/NiMain/NiMain_Class_Reference/NiVertexColorProperty.htm"><u><font color=#0000ff>NiVertexColorProperty</font></u></a></p> <p>l <a href="mk:@MSITStore:D:%20妗岄潰%20Gamebryo.chm::/Reference/CoreLibs/NiMain/NiMain_Class_Reference/NiWireframeProperty.htm"><u><font color=#0000ff>NiWireframeProperty</font></u></a></p> <p>l <a href="mk:@MSITStore:D:%20妗岄潰%20Gamebryo.chm::/Reference/CoreLibs/NiMain/NiMain_Class_Reference/NiZBufferProperty.htm"><u><font color=#0000ff>NiZBufferProperty</font></u></a></p> <p>鐢ㄦ埛涔熷彲浠ヨ嚜瀹氫箟灞炴х被鍨嬶紝浣嗘墍瀵瑰簲鐨勬暟鎹被鍨嬭琚玸hader璇█鎵鏀寔銆?/p> <h4>鍏夌収涓庨槾褰憋細</h4> <p>鍏夌収涓庨槾褰卞瘑涓嶅彲鍒嗭紝鍥犱負闃村獎灝辨槸鐢卞厜鐓т駭鐢熺殑錛屽墠闈㈠湪鏉愯川緋葷粺涓凡緇忔彁鍒拌繃鍏夌収瀵圭潃鑹茬殑褰卞搷錛岃繖閲岄噸鐐歸槓榪幫紝GameByro鏄庢牱鏍規嵁鍏夋簮浜х敓闃村獎鐨勩傜敱GameByro鎻愪緵鐨勯槾褰卞潎鍩轟簬ShadowMap鎶鏈紝</p> <p>浣嗕篃鎻愪緵浜哠haowVolume鐨勭ず渚嬩唬鐮併?/p> <p>Shadowing System鏄畬鍏ㄥ緩绔嬪湪甯ф覆鏌撶郴緇熶笂鐨勶紝 閫氳繃涓涓猂enderClick鐢熸垚ShadowMap錛岀劧鍚庡湪姝e父娓叉煋嫻佺▼寮濮嬩箣鍓嶅皢ShadowMap鏇存柊鍒板彲瑙侀泦鍐呮瘡涓涓覆鏌撳璞′笂銆傝繖鏍峰綋娓叉煋瀵硅薄浣跨敤NiStandardMaterial鏃跺氨浼氭牴鎹厜婧愮殑闃村獎鎶鏈潵瀵筍hadowMap榪涜閲囨牱錛屽茍灝嗙粨鏋滀笌鏈緇堢殑杈撳嚭棰滆壊鎸変竴瀹氭瘮渚嬫販鍚堛?/p> <p>闃村獎緋葷粺鐢變互涓嬪嚑涓被鏋勬垚錛?/p> <ul> <li><strong><a href="mk:@MSITStore:D:%20妗岄潰%20Gamebryo.chm::/Programmer_s_Guide/Shadowing_System/Architecture/Shadow_Write_Materials.htm"><u><font color=#0000ff>Shadow Write Materials</font></u></a></strong>:浠嶯iFragmentMaterial媧劇敓錛屽皝瑁呬簡鐢熸垚 ShadowMap鐨勭畻娉曞拰鐫鑹茬▼搴忋?</li> </ul> <p>GameByro鎻愪緵浜嗕笁縐嶇被鍨嬬殑Shadow Write Materials錛屽垎鍒負NiPointShadowWriteMaterial銆?/p> <p>NiDirectionalShadowWriteMaterial銆丯iSpotShadowWriteMaterial錛岄傜敤浜庝笁縐嶄笉鍚岀殑鍏夋簮綾誨瀷銆?/p> <ul> <li><strong><a href="mk:@MSITStore:D:%20妗岄潰%20Gamebryo.chm::/Programmer_s_Guide/Shadowing_System/Architecture/Shadow_Technique.htm"><u><font color=#0000ff>Shadow Technique</font></u></a></strong>:榪欎釜綾誨皝瑁呬簡闃村獎綆楁硶鐨勭粏鑺傦紝鍖呮嫭鐢熸垚ShadowMap鍜屼嬌鐢⊿hadowMap鎶曞皠闃村獎銆? <li><strong><a href="mk:@MSITStore:D:%20妗岄潰%20Gamebryo.chm::/Programmer_s_Guide/Shadowing_System/Architecture/Shadow_Render_Click.htm"><u><font color=#0000ff>Shadow Render Click</font></u></a></strong>: 榪欎釜綾繪槸涓涓敓鎴怱hadowMap鐨勬壒錛岃繖涓被鐨勫璞℃槸鐢眘hadow click generator璐熻矗鐢熸垚銆? <li><strong><a href="mk:@MSITStore:D:%20妗岄潰%20Gamebryo.chm::/Programmer_s_Guide/Shadowing_System/Architecture/Shadow_Click_Validator.htm"><u><font color=#0000ff>Shadow Click Validator</font></u></a></strong>: <a href="mk:@MSITStore:D:%20妗岄潰%20Gamebryo.chm::/Programmer_s_Guide/Shadowing_System/Architecture/Shadow_Render_Click.htm"><u><font color=#0000ff>Shadow Render Click</font></u></a>:閫氳繃姝ょ被瀵硅薄鍒ゆ柇鎺ュ彈闃村獎鐨勫嚑浣曚綋瀵逛簬shadow generator鏉ヨ鏄惁鍙銆? <li><strong><a href="mk:@MSITStore:D:%20妗岄潰%20Gamebryo.chm::/Programmer_s_Guide/Shadowing_System/Architecture/Shadow_Map.htm"><u><font color=#0000ff>Shadow Map</font></u></a></strong>: 姣忎釜ShadowMap瀵硅薄鍖呭惈涓涓綔涓洪槾褰卞浘鐨勭汗鐞嗭紝shadowmap瀵硅薄鐢眘hadowManager鐩存帴綆$悊錛屾瘡涓猻hadowmap瀵硅薄閮借涓涓猻hadow generator寮曠敤銆? <li><strong><a href="mk:@MSITStore:D:%20妗岄潰%20Gamebryo.chm::/Programmer_s_Guide/Shadowing_System/Architecture/Shadow_Cube_Map.htm"><u><font color=#0000ff>Shadow Cube Map</font></u></a>:</strong> 鍚宻hadowmap浣滅敤鐩稿悓錛屽彧鏄槾褰卞浘鐨勭汗鐞嗙被鍨嬩負CubeMap銆備富瑕佺敤浜庣偣鍏夋簮鐢熸垚鐨勫叏鏂瑰悜闃村獎銆? <li><strong><a href="mk:@MSITStore:D:%20妗岄潰%20Gamebryo.chm::/Programmer_s_Guide/Shadowing_System/Architecture/Shadow_Generator.htm"><u><font color=#0000ff>Shadow Generator</font></u></a>:</strong> 闃村獎鐢熸垚鍣紝姣忎釜ShadowGenerator閮藉搴斾竴涓狽iDyamicEffect錛圢iLight鐨勫熀綾伙級錛屼篃灝辨槸涓鴻繖涓狽iDyamicEffect浠h〃鐨勫厜婧愮敓鎴愰槾褰憋紝 鐢熸垚闃村獎鎵閲囩敤鐨勬妧鏈敱瀵硅薄寮曠敤鐨凷hadowTechnique鏉ュ喅瀹氥? <li><strong><a href="mk:@MSITStore:D:%20妗岄潰%20Gamebryo.chm::/Programmer_s_Guide/Shadowing_System/Architecture/Shadow_Click_Generator.htm"><u><font color=#0000ff>Shadow Click Generator</font></u></a>:</strong> 鐢熸垚ShadowMap鐨凷hadow Render Click閮界敱姝ょ被璐熻矗鍒涘緩銆傝繖涓被涓烘瘡涓猄hadowGenerator鎸囧畾ShadowMap錛屽茍璐熻矗姣忓撫鏇存柊ShadowMap鍜孲hadowMap鎵瀵瑰簲鐨勫彉鎹㈢煩闃點? <li><strong><a href="mk:@MSITStore:D:%20妗岄潰%20Gamebryo.chm::/Programmer_s_Guide/Shadowing_System/Architecture/Shadow_Manager.htm"><u><font color=#0000ff>Shadow Manager</font></u></a>:</strong>鎵鏈夌殑ShadowMap銆丼hadowTechnique銆丼hadowGenerator銆乻hadow render click瀵硅薄閮界敱ShadowManager緇熶竴綆$悊錛屽茍璐熻矗浣跨敤涓涓猻hadow click generator 鍦ㄦ瘡涓甯х敓鎴愪竴涓猻hadow render click鐨勫垪琛ㄣ?</li> </ul> <p>闃村獎緋葷粺闈欐佺粨鏋勫涓嬶細</p> <p><a href="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GameByro_91A9/clip_image012_2.gif"><img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image012 border=0 alt=clip_image012 src="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GameByro_91A9/clip_image012_thumb.gif" width=220 height=240></a>鏁翠釜闃村獎娓叉煋鐨勬祦紼嬪ぇ鑷村涓嬶細</p> <p>1. 鍦ㄥ簲鐢ㄧ▼搴忓垵濮嬪寲闃舵錛岄氳繃璋冪敤NiShadowManager鐨処nitialize()鎺ュ彛瀹炵幇瀵規暣涓槾褰辯郴緇熺殑鍒濆鍖栵紝姝ゆ椂搴旂敤紼嬪簭浼氭敞鍐屾墍鏈夌殑ShadowTechnique錛屽茍鍒濆鍖朜iShadowClickGenerator銆?/p> <p>2. 褰撴垜浠垱寤轟竴涓狽iLight浠ュ悗錛屾垜浠彲浠ラ氳繃NiShadowManager涓鴻繖涓狽iLight鏂板緩涓涓狽iShadowGenerator錛孨iShadowGenerator浼氶氳繃NiLight鐨勭被鍨嬫潵閫夋嫨鍚堥傜殑NiShadowTechnique錛屾鏃禢iShadowManager浼氫負鏂扮殑NiShadowGenerator鍒涘緩涓涓狽iShadowRenderClick銆?/p> <p>3. 褰撳撫娓叉煋緋葷粺鍚姩鍚庯紝NiShadowRenderClick鐨凱erformRendering()鎺ュ彛浼氳璋冪敤錛屾鏃禢iShadowRenderClick浼氶氳繃寮曠敤鐨凬iGenerator鑾峰緱闃村獎鐢熸垚鐨勭潃鑹茬▼搴忓拰鎵闇鐨勬暟鎹紙渚嬪娣卞害鍋忕Щ錛夛紝鍚屾椂閫氳繃NiGenerator寮曠敤鐨凜amera鑾峰緱鍦烘櫙鍥句腑鐨勫彲瑙侀泦銆備笅涓姝ュ氨鏄鍙闆嗕腑鐨勬覆鏌撳璞℃坊鍔燬hadowWriteMaterial騫惰涓烘縺媧葷姸鎬侊紝鑰孲hadowWriteMaterial鐨勭被鍨嬫槸鏍規嵁NiDyamicEffect鐨勭被鍨嬫寚瀹氱殑銆傛渶鍚嶯iRenderClick灝變細鍚姩娓叉煋嫻佹按綰匡紝灝嗗彲瑙侀泦涓殑瀵硅薄鐨勬繁搴﹀叏閮ㄦ覆鏌撳埌ShadowMap涓?/p> <p>4. 鍦ㄧ涓涓猂enderClick涓敓鎴愪簡ShadowMap錛屼笅闈㈠氨瑕佷嬌鐢ㄨ繖浜汼hadowMap鎶曞皠闃村獎銆傚湪姣忎竴甯у紑濮嬩箣鍓嶏紝鐢ㄦ埛榪樺彲浠ヨ嚜宸辨寚瀹氫笉鎺ュ彈闃村獎鐨勮妭鐐癸紝鎵嬪姩灝嗗叾鎻掑叆NiShadowGenerator錛氾細m_kUnaffectedReceiverList涓傚湪娓叉煋BackBuffer鐨凴enderClick涓紝棣栧厛浼氬鍦烘櫙鍥句腑鐨勮妭鐐硅繘琛屼竴嬈¢亶鍘嗭紝灝嗕笉鍙楅槾褰辯殑鑺傜偣鏀懼叆NiShadowGenerator錛氾細 m_kUnaffectedCasterList鐨勫垪琛ㄣ傚湪瀵規瘡涓妭鐐硅繘琛屾覆鏌撴椂錛屼細閬嶅巻NiShadowManager涓墍鏈夌殑NiShadowGenerator錛屽垽鏂繖浜汵iShadowGenerator鏄惁瀵硅繖涓妭鐐規湁褰卞搷錛屽垽鏂殑瑙勫垯鏄鑺傜偣鏄惁瀛樺湪浜嶶naffectedReceiverList鍜孶naffectedCasterList榪欎袱涓摼琛ㄤ腑錛屽鏋滃瓨鍦ㄤ簬浠諱綍涓涓摼琛紝鍒欒妭鐐逛笉鍙楁NiShadowGenerator褰卞搷錛屽鏋滃彈姝iShadowGenerator褰卞搷錛岄偅涔堝氨灝嗚NiShadowGenerator涓婄殑ShadowMap鍜屾暟鎹洿鏂板埌鑺傜偣涓婄殑娓叉煋灞炴т腑錛孨iStandardMaterial浼氭牴鎹繖浜涙暟鎹夋嫨瀵筍hadowMap閲囨牱鐨勬柟寮忥紝騫跺皢緇撴灉娣峰悎鍒版渶緇堢殑杈撳嚭棰滆壊涓?/p> <p>鍊煎緱娉ㄦ剰鐨勬槸錛岀偣鍏夋簮鐨剆hadowMap榛樿鐨勬槸閲囩敤CubeMap瀹炵幇錛岀敤鎴峰彲浠ラ氳繃鎺ュ彛閫夋嫨涓嶄嬌鐢–ubeMap瀹炵幇錛屽綋閲囩敤CubeMap瀹炵幇鏃訛紝鍏夋簮鏃犳硶浜х敓杞槾褰便?/p> <h4>娓叉煋緋葷粺鐨勬墿灞曪細</h4> <p>涓轟簡楠岃瘉GameByro娓叉煋緋葷粺鐨勬墿灞曟э紝絎旇呭皾璇曠潃鍔犲叆浜嗕竴涓悗鏈熷鐞嗙壒鏁圫creen Space Ambient Occlusion錛圫SAO錛?鍗沖睆騫曠┖闂寸殑閬斀錛岀敱浜庝粎浠呬負浜嗙啛鎮塆ameByro鐨勬覆鏌撴祦紼嬶紝鎵浠ョ瑪鑰呭茍鏈SSAO綆楁硶鍋氭繁絀訛紝浠呬粎鐢ㄤ簡鑷繁綆鍖栫殑綆楁硶銆?/p> <p>鍦ㄦ覆鏌撹繃紼嬩腑鍏堝崟鐙嬌鐢ㄤ竴涓猂anderClick灝嗗満鏅腑鐨勬繁搴︽覆鏌撳埌涓寮犵汗鐞嗕笂錛岀劧鍚庡湪娓叉煋鍒板悗鍙扮紦鍐插尯鐨凴enderClick涓娣卞害綰圭悊榪涜閲囨牱錛屾墽琛孲SAO綆楁硶錛屽皢緇撴灉娣峰悎鍒版渶緇堢殑緇撴灉涓傞噰鏍風偣鐨勫亸縐誨潗鏍囨槸閫氳繃瀵逛竴緇勯殢鏈哄悜閲忚繘琛屽綊涓鍖栧啀涔樹互0~1涔嬮棿鐨勯殢鏈烘暟鑰岀敓鎴愮殑錛屽嵆闀垮害涓?~1涔嬮棿鐨勯殢鏈哄悜閲忋?/p> <p>PS浠g爜濡備笅錛?/p> <p>float VerticalRange:GLOBAL; //鎺у埗XY鏂瑰悜閲囨牱鑼冨洿鍙橀噺錛屽彲浠ュ湪搴旂敤紼嬪簭灞傚鍏惰繘琛岃皟鏁?/p> <p>float HorizontalRange:GLOBAL; //鎺у埗鍦╖鏂瑰悜閲囨牱鑼冨洿鐨勫彉閲?/p> <p>float calAO(float2 texCoord,float dw, float dh ) //閫氳繃褰撳墠鍍忕礌鎵鏍囧拰鍋忕Щ閲忚綆桝O</p> <p>{</p> <p>float2 coord = float2(texCoord.x + dw, texCoord.y + dh);</p> <p>float4 CenterPos = tex2D(DepthSampler,texCoord);</p> <p>float4 CurPos = tex2D(DepthSampler,coord);</p> <p>float depthDiff = clamp(CenterPos.z - CurPos.z,0,VerticalRange);</p> <p>float ao = depthDiff/length(CurPos.xyz - CenterPos.xyz);</p> <p>return ao;</p> <p>}</p> <p>// Pixel shader</p> <p>float4 PS_SSAO(VS_OUTPUT In) : COLOR</p> <p>{</p> <p>float2 texCoord = In.BaseTex;</p> <p>float depth = tex2D(DepthSampler,texCoord).z;</p> <p>float ao = 0.0;</p> <p>float scale = HorizontalRange/depth; //鍥犱負閲囨牱鑼冨洿浼氬彈娣卞害褰卞搷錛屾晠闄や互姝ょ郴鏁般?/p> <p>for(int i=0; i<32; ++i)</p> <p>{</p> <p>float2 offset = arrRandomPt[i].xy* scale;</p> <p>ao += calAO(texCoord, offset.x, offset.y);</p> <p>}</p> <p>ao/=32;</p> <p>float4 color = tex2D(BaseSampler,texCoord);</p> <p>color.xyz *= (1.0 - ao);</p> <p>return color;</p> <p>}</p> <p>鏈緇堝疄鐜版晥鏋滃涓嬶細</p> <p><a href="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GameByro_91A9/clip_image014_2.jpg"><img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image014 border=0 alt=clip_image014 src="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GameByro_91A9/clip_image014_thumb.jpg" width=244 height=231></a><a href="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GameByro_91A9/clip_image016_2.jpg"><img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image016 border=0 alt=clip_image016 src="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GameByro_91A9/clip_image016_thumb.jpg" width=238 height=244></a></p> <p>SSAO鐢熸垚鐨勬槑鏆楀浘 鏃燬SAO鏉愯川</p> <p>浠ヤ笅涓ゅ浘涓婂浘涓烘棤SSAO鏁堟灉錛屼笅鍥句負寮鍚疭SAO鍚庣殑鏁堟灉銆?/p> <p><a href="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GameByro_91A9/clip_image018_2.jpg"><img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image018 border=0 alt=clip_image018 src="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GameByro_91A9/clip_image018_thumb.jpg" width=244 height=226></a></p> <p><a href="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GameByro_91A9/clip_image020_2.jpg"><img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image020 border=0 alt=clip_image020 src="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GameByro_91A9/clip_image020_thumb.jpg" width=244 height=229></a></p> <h4>鎬葷粨錛?/h4> <p>GameByro鐨勫撫娓叉煋緋葷粺鏄瘮杈冪伒媧伙紝鎯沖姞鍏ヨ嚜宸辯殑娓叉煋嫻佺▼鏄瘮杈冨鏄撶殑錛屾澶栫敱浜嶳enderTarget鍜孯enderView閮藉彲浠ョ敱鐢ㄦ埛鎸囧畾錛屾墍浠ユ兂瀹炵幇鑷繁鐨剆hader鏁堟灉涓嶆槸寰堥毦銆傜劧鑰岋紝NiStanderMaterial鐨剆hade tree姣旇緝澶嶆潅錛屾誨叡楂樿揪6000琛屼唬鐮佷互涓婏紝榪囩▼闈炲父澶嶆潅錛岃繖灝辨槸璇達紝濡傛灉鎯沖疄鐜拌嚜宸辯殑鏉愯川澶勭悊嫻佺▼涔熻浠樺嚭鐩稿綋澶х殑宸ヤ綔閲忥紝闃村獎緋葷粺铏界劧瀹炵幇浜嗚緝浣庣殑鑰﹀悎搴︼紝浣嗘槸瀹炵幇榪囦簬澶嶆潅錛屼笉澶熺畝媧侀珮鏁堛?/p> <p> </p> <p>浣滆咃細鍙惰搗娑熸吉</p> </div> <img src ="http://m.shnenglu.com/CrazyDev/aggbug/113020.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/CrazyDev/" target="_blank">CrazyDev</a> 2010-04-19 22:37 <a href="http://m.shnenglu.com/CrazyDev/articles/113020.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>GameByro鐨凬iCamera鐨勪嬌鐢紙杞級http://m.shnenglu.com/CrazyDev/articles/113019.htmlCrazyDevCrazyDevMon, 19 Apr 2010 14:34:00 GMThttp://m.shnenglu.com/CrazyDev/articles/113019.htmlhttp://m.shnenglu.com/CrazyDev/comments/113019.htmlhttp://m.shnenglu.com/CrazyDev/articles/113019.html#Feedback0http://m.shnenglu.com/CrazyDev/comments/commentRss/113019.htmlhttp://m.shnenglu.com/CrazyDev/services/trackbacks/113019.html閾炬帴錛?a href="http://m.shnenglu.com/rise-worlds/archive/2009/07/22/90859.html">http://m.shnenglu.com/rise-worlds/archive/2009/07/22/90859.html

1.  鍒涘緩Camera.
      1)閫氳繃 NiNew NiCamera鐨勬柟寮忚幏寰?br>      2)閫氳繃璇誨彇NIF鏂囦歡,鎵懼埌閫傚悎鐨凜amera Node
2. 鍒涘緩NiRect<float>瀵硅薄, 璁劇疆Camera瑙嗗彛澶у皬(鍋囪瀵硅薄涓篘iRect<float> kRetViewPost)
      1)鍏ㄥ睆騫?kRetViewPost = NiRect<float>(0.0f, 1.0f, 1.0f, 0.0f);
      2)鐗瑰畾澶у皬
         鍋囪褰撳墠紿楀彛澶у皬800*600, 鎴戜滑瑕佸湪澶у皬涓?00*100, 鐩稿鍧愭爣涓?(cx = 300, cy = 100)鐨勮寖鍥村唴鏄劇ずCamera鐨勫唴瀹? 閭d箞瑙嗗彛澶у皬涓?
         璁$畻瑙嗗彛姣斾緥: ratioLeft = cx / 800, ratioButon = 1.0 - (cy + 100) / 600; ratioRight = (cx + 200) / 800, ratioTop =  1.0 -  cy / 600;
         kRetViewPost = NiRect<float>(ratioLeft  ratioRight , ratioTop , ratioButon );
3. 鍒涘緩NiFrustum瀵硅薄, 璁劇疆Camera鎴潰浣撴瘮渚嬪ぇ灝?br>      NiFrustum(float fLeft, float fRight, float fTop, float fBottom, float fNear, float fFar, bool bOrtho = false)
      fLeft/fRight/fTop/fButtom鐨勫兼槸鐩稿浜庢樉紺哄尯鍩熺殑涓績鐐瑰拰鏄劇ず妯″紡鑰屽畾鐨?
      1) 鏄劇ず妯″紡:
            a) 姝d氦妯″紡 (bOrtho = true)
               鍋囧鏄劇ず鍖哄煙鏄?00*100鐨勫ぇ灝? 閭d箞fLeft = -(200/2)錛宖Right = 200/2, fTop = 100/2, fButtom = -100/2;
            b) 闈炴浜ゆā寮?(bOrtho = false)
               涓嶇鏄劇ず鍖哄煙澶氬ぇ, fLeft/fButtom鐨勫奸兘鍦╗-0.5, 0.0)涔嬮棿,  fRight/fTop 鐨勫奸兘鍦?0.0, 0.5]涔嬮棿; 濡? (-0.4, 0.4, 0.46, -0.46)
            姝d氦涓庨潪姝d氦鐨勫尯鍒湪浜? 浣跨敤闈炴浜ゆā寮忔椂, Camera鐨勬槧鍍忓ぇ灝忎細鍙楀埌涓庤仛鐒︾墿浣撻棿鐨勮窛紱誨獎鍝?鍗沖彲瀹炵幇緙╁皬鏀懼ぇ鐨勫姛鑳?, 鑰屾浜ゆā寮忓垯涓嶄細.
      2) 鏄劇ず姣斾緥
          鍦ㄦ浜ゆā寮忎笅閫氳繃璋冪敤AdjustAspectRatio鏉ヨ瀹? 鑰屽湪闈炴浜ゆā寮忛氳繃fLeft(fRight)涓巉Buttom(fTop)鐨勬瘮鍊兼潵璁懼畾.
      3) 瑁佸壀璺濈(渚嬪fNear = 1.0f, fFar = 1000.0f)
4. 閫氳繃NiCamera::SetViewPort(const NiRect<float>&)鍜孋amera::SetViewFrustum(const NiFrustum& )鍒嗗埆璁懼畾ViewPort鍜孎rustum



CrazyDev 2010-04-19 22:34 鍙戣〃璇勮
]]>
GameByro 鐗規у垎鏋愶紙杞級http://m.shnenglu.com/CrazyDev/articles/113017.htmlCrazyDevCrazyDevMon, 19 Apr 2010 14:29:00 GMThttp://m.shnenglu.com/CrazyDev/articles/113017.htmlhttp://m.shnenglu.com/CrazyDev/comments/113017.htmlhttp://m.shnenglu.com/CrazyDev/articles/113017.html#Feedback0http://m.shnenglu.com/CrazyDev/comments/commentRss/113017.htmlhttp://m.shnenglu.com/CrazyDev/services/trackbacks/113017.html閾炬帴錛?a href="http://m.shnenglu.com/rise-worlds/archive/2009/04/22/80691.aspx">http://m.shnenglu.com/rise-worlds/archive/2009/04/22/80691.aspx

寮曡█
錛?

GameByro鏄竴嬈炬垚鐔熺殑鍟嗕笟寮曟搸錛屽凡緇忚璁稿鎴愬姛鐨勫晢涓氶」鐩墍浣跨敤錛屼笉浠呭寘鎷枃鏄?銆佷笂鍙ゅ嵎杞?錛岃緪灝?絳夎法騫沖彴鐭ュ悕鍗曟満娓告垙錛岃繕鏈塃A鐨勫ぇ鍨?DMMORPG鎴橀敜online銆侴ameByro瀹屽叏鍩轟簬闈㈠瀵硅薄璁捐錛岀粨鏋勬竻鏅幫紝渚夸簬浣跨敤鍜屾墿灞曘傜伒媧葷殑鍙紪紼嬫覆鏌撴灦鏋勪嬌瀹冩瘮杈冨鏄撴敮鎸佹渶鏂扮殑鍥懼艦鎶鏈傚彟涓鏂歸潰錛岀敱浜庡己璋冮氱敤鎬э紝GameByro騫舵病鏈夊涓婂眰搴旂敤鍋氬お澶氱殑鏀寔錛屽叾宸ュ叿鍜屾彃浠跺ぇ澶氫粎鍏鋒湁涓浜涢氱敤鍔熻兘錛屾墍浠ュ畠鏇村儚鏄竴涓父鎴忓紑鍙戝浠惰屼笉鏄竴涓畬鏁寸殑FrameWork銆?

寮曟搸鐗規ф瑙堬細

· 璺ㄥ鉤鍙幫紙PC,XBOX360,PS3錛?

· 鍦烘櫙鍥捐〃鐜頒負灞傛鍖栫殑緇撴瀯

· 鍚岀洰鍓嶄富瑕佺殑寤烘ā宸ュ叿闆嗘垚錛堟彃浠舵敮鎸侊級

· 楂樻晥鐨勫彲瑙嗘ц鍓?

· 鍦ㄦ墍鏈夌殑騫沖彴涓婃敮鎸侀珮綰?D紜歡鍔犻?

· 楂樼駭綰圭悊鍜岀潃鑹叉晥鏋?

· 鍔ㄦ佺鎾炴嫻?

· 緇嗚妭鍒嗙駭琛ㄧ幇錛圠OD錛?

· 鐏墊椿鐨勬覆鏌擄紝鎺掑簭鍜岃鍓畻娉?

瀵硅薄緋葷粺錛?

GameByro鐨勫璞$郴緇熺殑浣跨敤閬嶅強鏁翠釜寮曟搸錛屽叾涓昏瀹炵幇濡傚璞$鐞嗭紝寮曠敤璁℃暟錛屽璞$敓瀛樻湡絳夊姛鑳姐傚彲浠ラ氳繃瀵瑰嚑涓熀綾葷殑緇ф壙鏉ヤ嬌鐢ㄥ璞$郴銆?

鍏朵富瑕佺壒鎬т富瑕佹湁錛?

1. 鏅鴻兘鎸囬拡錛堝紩鐢ㄨ鏁幫級

2. 榪愯鏃剁被璇嗗埆錛圧TTI錛?

3. 鍦烘櫙瀵硅薄澶嶅埗

4. 搴忓垪鍖栵紙瀵硅薄鏂囨。鍖栵級

5. 瀵硅薄鍛藉悕

6. 瀵硅薄鎵╁睍鏁版嵁鐨勭鐞?

7. 瀹氭椂鍣紙涓昏鐢ㄤ簬鍔ㄧ敾錛?

8. 澶氱嚎紼嬫搷浣?

椹卞姩灞?/strong>錛?

GameByro瀵瑰浘褰㈡帴鍙h繘琛屼簡灝佽錛屽皢鍥懼艦API浠庡紩鎿庣殑娓叉煋緋葷粺涓墺紱誨嚭鏉ワ紝鍦≒C緋葷粺涓婏紝GameByro鍚屾椂鏀寔DX9鍜孌X10涓ょ鎺ュ彛銆?

DX9娓叉煋鍣ㄧ壒鎬?/strong>錛?

l GameByro涓嶅厑璁稿涓狣X9Renderer瀵硅薄鍚屾椂瀛樺湪錛屼笖涓嶈兘涓嶥X10Renderer鍏卞瓨銆備絾鍦ㄥ悓涓甯у唴錛孏ameByro鐨凞X9Renderer鍙互鍚屾椂娓叉煋澶氫釜紿楀彛銆?

l GameByro鐨凞X9娓叉煋鍣ㄦ敮鎸佸璧勬簮鐨勫綰跨▼璁塊棶錛屽悓鏃朵篃鏀寔瀵硅祫婧愮殑棰勮澆錛屼絾鏄綰跨▼鐨勬搷浣滀粛鐒跺彈鍒頒弗鏍肩殑闄愬埗銆?

l DX9Renderer 鐨勫浐瀹氱綰胯挋鐨搷浣滄渶灝戞敮鎸?鍧楅楠鹼紙鐭╅樀錛夛紝鍚屾椂鍩轟簬shader鐨勮挋鐨搷浣滄敮鎸?0鍧楅楠箋?

l DX9Renderer閫氳繃瀵瑰悗鍙扮紦鍐茬殑澶氶噸閲囨牱鏀寔鍏ㄥ睆鎶楅敮榻匡紝鑼冨洿鍦?鍊嶅埌4鍊嶄箣闂淬?

l 澶у鏁扮‖浠跺湪DX9涓嬪鍑犱綍浣撶殑涓涓崟涓鐨刾iece鎵鑳芥帴鍙楃殑鍏夌収鏁伴噺閮芥湁涓瀹氱殑闄愬埗錛堟寚娓叉煋鐨勪竴涓壒錛夛紝濡傛灉瓚呰繃榪欎釜闄愬埗錛孏ameByro浼氭牴鎹窛紱繪垨鑰呮槸褰卞搷鍥犲瓙鏀懼純涓浜涘厜鐓с傛鍥犲姝わ紝鍦ㄥ簲鐢ㄧ▼搴忎腑錛屽綋8涓互涓婄殑閫愰《鐐瑰厜鐓т綔鐢ㄤ簬鍚屼竴瀵硅薄鏃訛紝灝變細鏈変竴浜涜鎶涘純銆?

l DX9Renderer鎻愪緵浜嗚鍙g殑宸﹀彸鍙嶅悜鍔熻兘錛岀敤浜庡疄鐜板悗瑙嗛暅銆佺珛鏂逛綋璐村浘琛ㄩ潰緇樺埗絳夊姛鑳姐?

l DX9Renderer鏀寔欏剁偣闆撅紝鍙互閫氳繃鐩稿叧鎺ュ彛璁劇疆闆劇殑鏈澶у箋?

l DX9Renderer瀹屽叏鏀寔DX鐨勭汗鐞嗘牸寮忋傚簲鐢ㄧ▼搴忓彲浠ュ皢鑷繁鐨凞irect3D textures鎻愪緵緇橤ameByro錛屽紩鎿庝細鑷姩灝嗗叾灝佽鍒拌嚜宸辯殑鏉愯川瀵硅薄涓茍鍏佽娣誨姞灞炴у拰鐗規晥銆傞氳繃鎻愪緵鑷繁鐨凞X鐨勭汗鐞嗘牸寮忥紝GameByro鑳藉姝g‘鐨勪嬌鐢ㄨ嚜騫墮潪澶╃劧鏀寔鐨勭汗鐞嗘牸寮忋?

l 綰圭悊鐩稿叧鐗規у拰闄愬埗錛欴X9Renderer闇瑕佹樉鍗℃敮鎸佸湪鍚屼竴pass涓嚦灝戜嬌鐢ㄤ袱涓汗鐞嗭紝鍚﹀垯娓叉煋鍣ㄥ垯涓嶄細鍒涘緩鎴愬姛銆傛澶栧彈闄愪簬紜歡鐨勫姛鑳借繕鏈夛細

1. Cube Mapping錛堢珛鏂逛綋綰圭悊錛?

2. Specular Bump Mapping錛堝嚬鍑擱暅闈㈣創鍥撅級

3. Diffuse Bump Mapping錛堝嚬鍑稿弽灝勮創鍥撅級

4. Non-Power-of-Two Texture Size錛堢紪闀塊潪浜屾暣鏁板箓鐨勭汗鐞嗭級錛氫嬌鐢ㄨ繖縐嶇汗鐞嗘湁濡備笅闄愬埗錛氱汗鐞嗗鍧妯″紡蹇呴』璁劇疆涓篶lamp錛孧ipmapping涓嶈兘浣跨敤銆?

5. Texture Downsizing錛堢汗鐞嗙簿搴︾緝鍑忥級

6. Texture Compression錛堝帇緙╃汗鐞嗭級錛孌X9Renderer鏀寔杞藉叆緇忚繃鍘嬬緝鐨勭汗鐞嗘牸寮忥紝騫舵彁渚涗簡綰圭悊鍗蟲椂鍘嬬緝鐨勫姛鑳姐傚鏋滅‖浠舵敮鎸佸帇緙╃汗鐞嗭紝DX9Renderer鍙互灝嗙粡榪囧帇緙╃殑綰圭悊鏁版嵁鐩存帴浜ょ粰紜歡澶勭悊錛屽惁鍒橠X9Renderer浼氳嚜鍔ㄥ皢鏁版嵁瑙e帇鍚庡啀浜ょ粰紜歡銆?

7. Texture Apply Modes Supported錛欴X9Renderer涓嶆敮鎸丄PPLY_DECAL綰圭悊搴旂敤妯″紡銆?

8. Texture Format Requests錛堢汗鐞嗘牸寮忚姹傦級錛氱簿紜殑綰圭悊鍍忕礌鏄犲皠渚濊禆浜庣洰鏍囩‖浠跺拰鏄劇ず鍣ㄥ儚绱犱綅瀹姐?

9. Palettized Texture Formats錛堣皟鑹叉澘綰圭悊鏍煎紡鐨勬敮鎸侊級銆?

10. Sphere Mapping錛堢悆闈㈡槧灝勶級錛欸ameByro涓墍鏈夌殑娓叉煋鍣ㄩ兘鏀寔涓栫晫絀洪棿涓殑鐞冮潰鏄犲皠銆?

11. DX9Renderer鏀寔鍔犺澆鍖呮嫭DDS銆乀GA銆丅MP鏍煎紡鐨勬枃浠躲侰ube textures鍜寁olume textures閮借兘琚紜殑鍔犺澆錛屼絾鏄彧鑳介氳繃涓夌淮鍧愭爣瀵誨潃銆?

12. GameByro鐨勭紪杈戝櫒鏀寔瀵煎嚭DX鍘熸牸寮忕殑綰圭悊錛屽茍鍦ㄥ姞杞界殑鏃跺欎笉榪涜鏍煎紡杞崲銆傚皢DX鏍煎紡鐨勭汗鐞嗙洿鎺ヤ氦緇橠X澶勭悊銆?

寮曟搸娓叉煋緋葷粺鍒嗘瀽

GameByro鐨勬覆鏌撴槸鐢卞撫娓叉煋緋葷粺(Frame Rendering System) 鎺у埗鐨勶紝甯ф覆鏌撶郴緇熷皝瑁呬簡姣忎竴涓壒嬈$殑緇樺埗榪囩▼錛岃繖鏍峰彲浠ユ柟渚跨殑鎺у埗鏁翠釜娓叉煋嫻佺▼銆?

闃村獎緋葷粺錛?/strong>

GameByro鐨勯槾褰辯郴緇熸槸浣跨敤甯ф覆鏌撶郴緇熺殑鍏歌寖錛岄氳繃瀵瑰凡鏈夌殑綾諱互緇ф壙鐨勬柟寮忚繘琛屽姛鑳芥墿灞曪紝瀹炵幇浜嗙伒媧葷殑闃村獎娓叉煋鍔熻兘銆侴ameByro鑷韓鏀寔涓夌鍏夋簮鐨勯槾褰卞浘鐢熸垚錛屽垎鍒負鐐瑰厜婧愶紙鍏ㄦ柟鍚戝厜錛夈佸鉤琛屽厜銆佽仛鍏夌伅銆?

闃村獎緋葷粺緇熶竴鐢變竴涓鐞嗗櫒璐熻矗鎺у埗銆傞槾褰辯殑綆楁硶琚皝瑁呮垚浜嗕竴涓釜綾誨璞′腑銆傜郴緇熶腑鍚屾椂瀛樺湪鐫鍑犵闃村獎鎶鏈紝鍗沖彲浠ラ夋嫨浣跨敤錛屼篃鍙互鍚屾椂浣跨敤鍑犵闃村獎鎶鏈綔鐢ㄤ簬鍚屼竴鍑犱綍浣撱傞槾褰辯郴緇熶細鑷姩瑁佸壀鎺夐偅浜涙病鏈夐槾褰辨帴鍙椾綋鐨勫厜婧愶紝鍚屾椂鍦ㄨ綆楁瘡涓厜婧愭墍浜х敓鐨勯槾褰辨椂錛屼細瑁佸壀鎺夐偅浜涗笉鍙楁鍏夋簮褰卞搷鐨勫嚑浣曚綋錛岃揪鍒版ц兘浼樺寲鐨勭洰鐨勩傜敤鎴峰緢瀹規槗瀵歸槾褰辯郴緇熻繘琛屾墿灞曪紝瀹炵幇鑷繁鐨勯槾褰辯畻娉曘?

GameByro鐨勯槾褰變富瑕佹槸鍩轟簬shadowMap鎶鏈紝鐐瑰厜婧愪嬌鐢ㄤ簡绔嬫柟浣撻槾褰卞浘錛岃蔣闃村獎鍒欎嬌鐢ㄤ簡鏂瑰樊闃村獎鍥炬妧鏈紙VSM錛夈?

GameByro鐨勯槾褰辯郴緇熼泦鎴愬埌浜嗗満鏅紪杈戝櫒涓紝鍙互鍦ㄧ紪杈戝櫒涓洿鎺ヤ負鍏夋簮鎸囧畾闃村獎鏁堟灉錛屾墍瑙佸嵆鎵寰楋紝鎻愰珮浜嗗紑鍙戞晥鐜囥?

clip_image002

錛堝鍥炬墍紺猴紝鍦ㄧ紪杈戝櫒涓悓鏃朵嬌鐢ㄧ偣鍏夋簮闃村獎鍜屾柟鍚戝厜浜х敓鐨勮蔣闃村獎錛?

鍦板艦緋葷粺錛?/strong>

GameByro鐨則errain鏄畝鍗曟槗鐢ㄧ殑錛屽茍涓旀柟渚夸負鍏舵墿灞曪紝鐢ㄤ互婊¤凍欏圭洰鐨勫叾浠栧姛鑳介渶姹傘?

鍦板艦緋葷粺鐢變互涓嬪嚑閮ㄥ垎緇勬垚錛?

clip_image004

1. NiTerrainComponent錛氭槸鏁翠釜鍦板艦緋葷粺鐨勫叆鍙o紝閫氳繃Terrain Interactor鍙互鍍忚闂鍣ㄤ竴鏍瘋闂甆iTerrainComponent鎵鏈夌殑sub-component銆?

2. Terrain Interactor 鍦板艦榪唬鍣紝閫氳繃Terrain Interactor鍙互鍚姩鎵鏈夌殑鏁版嵁鏌ヨ錛屾瘮濡傜畝鍗曠殑紕版挒媯嫻嬶紝meta-data鏌ヨ錛岄珮搴﹀浘瀵煎叆鍜屾枃浠跺姞杞姐傚嚑涔庢墍鏈夊熀浜巘errain緋葷粺鐨勬搷浣滈兘鏄氳繃Terrain Interactor瀹屾垚鐨勩?

3. NiTerrainSectorComponent 鐨勫唴閮ㄤ富瑕佸寘鍚竴涓礋璐g粍緇囧湴褰㈡暟鎹潡鐨勫洓鍙夋爲銆傛瀵硅薄璐熻矗浠庣鐩樺姞杞芥墽琛岀墿浣撲笌鍦板艦鐨勫皠綰跨浉浜ゆ煡璇紝杞崲鍦板艦鍑犱綍浣擄紝綆$悊鍐呴儴璧勬簮錛堝寘鎷叡浜殑欏剁偣嫻佸拰shader錛夈傚悓鏃禢iTerrainSectorComponent榪樿礋璐h繘琛屽洓鍙夋爲鐨勯伄鎸℃煡璇㈠拰鐢熸垚鍙闆嗐?

4. Data Leaves and Blocks 鍥涘弶鏍戠殑鍒囧垎絳夌駭鏄氳繃NiTerrainComponent璁劇疆鐨勶紝鍥涘弶鏍戠殑姣忎釜鑺傜偣閮藉寘鍚竴涓湴褰㈠潡錛屽潡鐨勮竟闀垮繀欏繪槸2鐨勬暣鏁板箓銆傚洓鍙夋爲鐨勬牴鑺傜偣絳夌駭涓篘錛屽彾鑺傜偣涓?錛岀敱楂樺埌搴曠粏鑺備緷嬈″鍔狅紝絳夌駭涓?鐨勫彾鑺傜偣鎵鍖呭惈鐨勫湴褰㈠潡鎷ユ湁鏈楂樼殑緇嗚妭銆?

clip_image006

5. Material Layers錛氬湴褰㈢郴緇熼氳繃鎺╃爜鍥炬潵涓哄湴褰㈡寚瀹氭潗璐ㄣ傛帺鐮佺殑鏁版嵁鎸囧畾浜嗗湴琛ㄧ殑姣忎釜閮ㄥ垎鎵瀵瑰簲鐨勬潗璐ㄣ傚悓涓鍦拌〃鏈澶氭敮鎸佸洓縐嶆潗璐紝鏍規嵁鍚勮嚜鐨勬潈閲嶈繘琛屾販鍚堬紝鏉冮噸鏁版嵁涔熸槸閫氳繃鎺╃爜鏉ヨ幏寰椼?

鏉愯川鍦ㄥ湴褰㈢殑娓叉煋緋葷粺涓壆婕旂潃寰堢壒孌婄殑瑙掕壊錛屽彲浠ラ氳繃瀵規潗璐ㄦ寚瀹歮eta-data鏉ラ檮杞藉叾浠栫殑淇℃伅錛堟瘮濡傚湪闆湴琛岃蛋鐨勫0闊籌級錛屽悓鏃朵篃鍙互閫氳繃瀵規潗璐ㄧ殑綰圭悊璐村浘涓哄湴琛ㄥ鍔犻《鐐規垨鍍忕礌鐫鑹茬▼搴忋傛澶栨瘡縐嶆潗璐ㄥ彲浠ュ寘鍚涓嬫寚瀹氱被鍨嬬殑綰圭悊璐村浘錛?

l Diffuse/Base Map 鍙嶅皠璐村浘錛岄氳繃3鎴?涓氶亾鍐沖畾鍙嶅皠鍏夌殑棰滆壊銆?

l Detail Map 緇嗚妭璐村浘錛屼負鍙嶅皠璐村浘鎻愪緵Alpha鍊箋?

l Normal Map 娉曠嚎璐村浘銆?

l Parallax Map 瑙嗗樊璐村浘錛岀敤鏉ヤ繚瀛樿〃闈㈠儚绱犵殑楂樺害鍋忕Щ淇℃伅銆?

姝ゅGameByro榪樻彁渚涗簡綆鍗曠殑鍦板艦灝勭嚎榪借釜鍜屾按闈㈡覆鏌撱傚湴褰㈠皠綰胯拷韙洰鍓嶇殑瀹炵幇寰堢畝鍗曪紝灝辨槸鐢ㄤ竴涓皠綰挎煡璇㈠湴琛ㄧ殑涓夎褰紝浠ュ悗浼氫笌Physics榪涜闆嗘垚錛屾敮鎸侀氳繃鐗╃悊寮曟搸l瀹炵幇鐗╀綋涓庡湴琛ㄧ殑紕版挒媯嫻嬨傛按闈㈡覆鏌撲富瑕佹槸鐢ㄤ袱寮犵汗鐞嗗姩鐢繪販鍚堣屾垚錛岄氳繃鍑瑰嚫璐村浘鏉ヨ〃鐜版按娉€傚紩鎿庝負姘撮潰鎵鍦ㄧ殑鍦拌〃鐢熸垚涓涓伆搴﹀浘錛屼繚瀛樺湴琛ㄨ窛紱繪按闈㈢殑楂樺害銆傝繖閲岄鍏堝畾涔変簡涓ょ棰滆壊錛屾繁姘撮鑹插拰嫻呮按棰滆壊錛屽鏋滄按闈互涓嬫病鏈夊湴琛ㄥ氨鐩存帴浣跨敤娣辨按棰滆壊銆傚啀鍍忕礌鐫鑹插櫒涓彲浠ュ楂樺害鍥捐繘琛岄噰鏍鳳紝浠庤屽緱鍑哄綋鍓嶅儚绱犵殑姘存繁錛岀劧鍚庢牴鎹繖涓繁搴﹀湪娣辮壊鍜屾祬鑹蹭箣闂磋繘琛屽樊鍊鹼紝寰楀埌鏈緇堟按鐨勯鑹層備笉榪囪繖涓晥鏋滃茍涓嶆槸寰堢悊鎯籌紝濡傞渶鏇村ソ鐨勬晥鏋滐紝榪橀渶瑕佸鍏惰繘琛屾墿灞曪紝姣斿璇達紝澧炲姞鍙嶅皠鍜屾姌灝勭瓑銆?

clip_image008

鏉愯川錛?

GameByro鐨勬潗璐ㄤ富瑕佹槸閫氳繃3DMAX鐨勬彃浠惰繘琛岀紪杈戠殑錛屽茍鎻愪緵浜嗘爣鍑嗙殑鏉愯川鑺傜偣銆?

錛堝湪GameByro涓紝鏉愯川鑺傜偣鐨勪富瑕佷綔鐢ㄦ槸璐熻矗鏍規嵁鐫鑹茶繃紼嬬敓鎴愮浉搴旂殑shader浠g爜錛夎繖涓妭鐐逛竴鍏辨湁9涓氶亾錛屽茍鎻愪緵浜嗗ぇ閲忓彲渚涜皟鏁寸殑鍙傛暟錛岃繖鏍峰氨鍙互璁╃編鏈柟渚跨殑浣跨敤閫愬儚绱犲厜鐓с佽宸創鍥俱佺幆澧冧綋璐村浘榪欎簺鏁堟灉錛屽湪娓告垙涓紝GameByro閫氳繃涓嶅悓鐨勬潗璐ㄥ睘鎬у拰涓嶅悓鐨勫厜鐓х幆澧冪紪璇戝嚭涓嶅悓鐨剆hader浠g爜錛屼互浜岃繘鍒剁殑褰㈠紡淇濆瓨鍦ㄧ鐩樹笂錛屼笅嬈″惎鍔ㄦ椂杞藉叆鍐呭瓨錛岃繖鏍峰氨涓嶇敤閲嶅緙栬瘧錛屼絾鍦ㄧ涓嬈¤繘鍏ユ父鎴忎腑鏃朵細鏈変簺寤惰繜銆傜伒媧誨己澶х殑鏉愯川鏄涓栦唬寮曟搸鐨勯噸瑕佺壒寰侊紝GameByro鍦ㄨ繖鏂歸潰鍋氬埌浜嗙伒媧伙紝浣嗘槸緹庢湳浠嶇劧涓嶈兘閫氳繃鍙鍖栧伐鍏鋒帶鍒舵潗璐ㄧ殑澶勭悊榪囩▼錛屽彧鑳界紪杈戣祫婧愬拰淇敼鍙傛暟錛岀紪杈戞ц繕涓嶅寮哄ぇ銆?

Shader錛?

GameByro鎻愪緵浜嗕竴涓瀬鍏鋒墿灞曟х殑shader緋葷粺錛屽茍灝嗗畠涓庤壓鏈垱浣滃伐鍏風揣瀵嗙粨鍚堛侴ameByro瀹氫箟浜嗚嚜宸辯殑shader鏍煎紡錛屽熀浜庢枃鏈殑.NSF鏂囦歡鍜屽熀浜庝簩榪涘埗鐨?NSB鏂囦歡錛?NSF鏂囦歡緙栬瘧鍚庣敓鎴?NSB鏂囦歡錛岃繖涓繃紼嬪嵆鍙互鍦ㄥ紑鍙戞椂瀹屾垚錛屼篃鍙互鍦ㄨ繍琛屾椂榪涜銆?.NSF鏂囦歡浣跨敤鐨勬槸GameByro鑷畾涔夌殑璇硶錛屽茍浣跨敤鑷繁鐨勮娉曞垎鏋愬櫒灝嗗叾緙栬瘧鎴愮浉鍏沖鉤鍙扮殑浠g爜銆傚疄闄呬笂錛孏ameByro鐨剆hader緋葷粺鍦ㄥ簲鐢ㄧ▼搴忓拰GPU紼嬪簭涔嬮棿鍋氫簡涓灞傚皝瑁咃紝灞忚斀浜嗕笉鍚屽鉤鍙頒箣闂寸殑宸紓錛屼嬌寰楀簲鐢ㄧ▼搴忓彲浠ョ敤鐩稿悓鐨勬帴鍙f潵涓嶨PU涔嬮棿榪涜浜や簰錛岃孏PU紼嬪簭鏈緇堣繕鏄氳繃cg鎴杊lsl鏉ュ疄鐜扮殑錛岃繖鏍峰仛鐨勫ソ澶勬槸錛屽綋騫沖彴鍙戠敓鏀瑰彉鏃訛紝鍙渶瑕佹牴鎹叿浣撶殑騫沖彴鏉ョ紪鍐欑浉搴旂殑shader紼嬪簭錛岃屼笉闇瑕佸幓淇敼搴旂敤紼嬪簭銆傚綋鐒訛紝shader緋葷粺涔熺洿鎺ユ敮鎸乧g鍜宧lsl鏍煎紡鐨勬枃浠訛紝浣跨敤鏂規硶鍚孨SF銆丯SB鏂囦歡鐩鎬技銆侴ameByro鐨凷hader緋葷粺鎻愪緵浜嗕竴濂楀畬鏁寸殑鏌ラ敊鏈哄埗錛屾柟渚夸嬌鐢ㄨ呭紼嬪簭榪涜debug銆?

GameByro鐨剆hader緋葷粺闆嗘垚鍒頒簡鎵鏈夌殑閰嶅寮鍙戝伐鍏蜂腑錛岃繖鏍峰氨瀹炵幇浜嗘墍瑙佸嵆鎵寰楋紝緹庢湳鍦ㄥ伐鍏蜂腑灝卞彲浠ョ洿鎺ョ湅鍒拌祫婧愬湪娓告垙涓殑鏁堟灉錛屼粠鑰屾彁楂樹簡寮鍙戞晥鐜囥?

GameByro閫氳繃寮曞叆鑷繁鐨剆hader鏂囦歡鏍煎紡涓鴻法騫沖彴鎻愪緵浜嗘柟渚匡紝鍚屾椂涔熷鍔犱簡緋葷粺鐨勫鏉傛э紝浣跨敤璧鋒潵紼嶅井鏈夌偣綣佺悙錛屽紑鍙戜漢鍛樺張涓嶅緱涓嶅幓鐔熸倝瀹冪殑璇硶錛屽鏋滃紑鍙戜腑涓嶈冭檻璺ㄥ鉤鍙扮殑璇濓紝鎯寵鑷繁寮鍙戠壒鏁堬紝涔熷彲浠ヤ笉浣跨敤NSF鏂囦歡錛岀洿鎺ヤ嬌鐢╢x鏍煎紡鐨勬枃浠躲?

寮曟搸鑷甫鐨勭壒孌婃潗璐?/strong>錛?

AdditiveLightMapsMaterial錛堥檮鍔犲厜鐓у浘鏉愯川,浣跨敤棰濆鐨勫厜鐓у浘綰圭悊鏉ユ販鍚堝綋鍓嶅満鏅厜鐓ц綆楃殑緇撴灉銆備笅闈㈢殑鎻掑浘鏄嬌鐢ㄦ姇灝勫厜鐓у浘綰圭悊鐨勬覆鏌撴晥鏋溿傦級

clip_image010

AlphaTextureBlender錛堢汗鐞咥lpha娣峰悎錛?

clip_image012

Aniso錛堝悇鍚戝紓鎬у厜鐓э紝宸︿笅鐨勯鏈猴級銆?strong>Halo錛堝厜鏅曟晥鏋溿備笂闈㈢殑椋炴満錛?

clip_image014

ASMSkinningLighting錛堝弬涓庡厜鐓ц綆楃殑楠ㄩ鍔ㄧ敾钂欑毊錛?

ASMSkinningNoLighting錛堜笉鍙備笌鍏夌収璁$畻鐨勯楠煎姩鐢昏挋鐨紝鏁堢巼緇忚繃浜嗕紭鍖栵級

BaseBumpWithSpatialGlow錛堝甫鏈夎緣鍏夋晥鏋滅殑鍑瑰嚫璐村浘錛?strong>

clip_image016

Chrome錛堥噾灞炲琛紝浣跨敤鍩烘湰綰圭悊銆佹極鍙嶅皠cube map銆侀暅闈㈠弽灝刢ube map銆佹硶綰胯創鍥劇瓑鏁堟灉瀹炵幇綾諱技浜庨噾灞炶〃闈㈢殑鍏夋辰鍜岃川鎰燂紝騫舵敮鎸佸熀浜庢鏁堟灉鐨勮挋鐨搷浣滐級

clip_image018

Colorize錛堜嬌鐢ㄤ竴涓嚜瀹氫箟鐨勫睘鎬ф潵鍔ㄦ佺殑璁劇疆鎴栬呬慨鏀歸鑹詫級

clip_image020

FXSkinning and HLSLSkinning錛堜嬌鐢ㄥ彲緙栫▼娓叉煋綆$嚎榪涜楠ㄩ鍔ㄧ敾鐨勮挋鐨級

GeneralGlow錛堟櫘閫氳緣鍏夋晥鏋滐級

GeneralDiffuseSpecularGlow(鏅氶暅闈㈠弽灝勯珮鍏夎緣鍏?

clip_image022

GeneralDiffuseSpecular錛堟櫘閫氶暅闈㈠弽灝勯珮鍏夛紝鏀寔钂欑毊鎿嶄綔錛?

clip_image024

Dot3BumpMap錛堝嚬鍑歌創鍥撅紝鍙沖浘涓鴻挋鐨晥鏋滐級

clip_image026

Glass (鐜葷拑鏁堟灉)

clip_image028

OilyFilm錛堟補鐘惰杽鑶滐級

clip_image030

LuminanceTransfer錛堢被浼間簬鐑簮渚︽祴浠殑鏁堟灉錛?strong>

clip_image032

Outlining錛堣摑鍥炬垨鑽夊浘錛?

clip_image034

ParallaxMapping錛堣宸創鍥撅紝涓嬮潰鍙沖浘鏄嬌鐢ㄤ簡ParallaxMapping鐨勬晥鏋滐級

clip_image036

PerPixelLighting錛堥愬儚绱犲厜鐓э紝鍚屾椂鏀寔鍥哄畾綆$嚎鍜屽彲緙栫▼娓叉煋綆$嚎錛?

clip_image038

SkinnedToonShadingWithOutline錛堝崱閫氭覆鏌擄紝鏀寔楠ㄩ钂欑毊銆佹弿杈癸級

clip_image040

綰圭悊錛?

GameByro鐨勭汗鐞嗙郴緇熸敮鎸佸閲嶇汗鐞嗐佹姇灝勭汗鐞嗐佸姩鎬佺汗鐞嗐佺壒鏁堢汗鐞嗭紝騫朵笖浣跨敤綰圭悊鐨勪竴浜涢珮綰х壒鎬ф槸騫沖彴鏃犲叧鐨勩傚綋鐒禛ameByro涓汗鐞嗙殑鍔熻兘浠嶇劧鍙楅檺浜庣‖浠剁壒寰併備富瑕佺壒鎬у拰闄愬埗瑙佹覆鏌撳櫒銆?

宸ュ叿鍙婃彃浠訛細

GameByro鎻愪緵浜嗗満鏅紪杈戝櫒錛岃祫婧愭祻瑙堝櫒錛岃祫婧愮殑鐗╃悊妯″瀷嫻忚鍣ㄣ佸姩鐢葷紪杈戝伐鍏鳳紝瀛椾綋鍒涘緩宸ュ叿錛屼互鍙?DMAX銆丮AYA鎻掍歡錛屾潗璐ㄧ紪杈戞槸鍦ㄦ彃浠朵腑榪涜鐨勶紝榪欏宸ュ叿鍖呭惈浜嗗畬鏁寸殑3D璧勬簮寮鍙戞祦紼嬨?strong>

鐗╃悊緋葷粺

GameByro閫氳繃PhysX鎻愪緵鐗╃悊浠跨湡妯℃嫙錛屽彧闇鍑犺綆鍗曠殑浠g爜灝卞彲浠ュ皢GameByro鐨勫満鏅拰PhysX寤虹珛璧瘋仈緋伙紝涓嶈繃闇瑕佸湪鏄懼紡鐨勮皟鐢ㄧ浉鍏蟲帴鍙f潵榪涜鐗╃悊浠跨湡瀵硅薄鍜屽満鏅璞¢棿鐨勫悓姝ワ紝鍗沖皢鐗╃悊浠跨湡鐨勭粨鏋滀綔鐢ㄤ簬鍦烘櫙涓殑瀵硅薄銆傚悓鏃訛紝榪樺彲浠ラ氳繃鍙傛暟鏉ュ喅瀹氭槸鍚﹂渶瑕佺瓑寰呯墿鐞嗕豢鐪熻繍綆楃殑緇撴灉銆傝繖灝變繚璇佷簡涓瀹氱殑鐏墊椿鎬э紝渚嬪錛岀敤鎴峰彲浠ヤ笉瀵歸潤鎬佺墿浣撹繘琛屽悓姝ワ紝杈懼埌浼樺寲鐨勭洰鐨勩傝繕鍙互閫氳繃鎶婃洿鏂扮殑鎺ュ彛鏀懼湪涓嬩竴嬈″驚鐜紑濮嬬殑鏃跺欒皟鐢紝榪欐牱鍙互鍑忓皯鐢變簬絳夊緟鐗╀綋浠跨湡妯℃嫙閫犳垚綰跨▼鐨勯樆濉烇紝鍏呭垎鐨勫埄鐢ㄤ簡CPU璧勬簮銆?

綺掑瓙緋葷粺錛?

GameByro鐨勭矑瀛愮郴緇熶負3ds max 鍜?Maya絳夌矑瀛愮敓鎴愬伐鍏鋒彁渚涗簡瀹屾暣鐨勬彃浠剁郴緇燂紝騫跺畬鍏ㄦ敮鎸佽蔣綺掑瓙錛屽嵆綺掑瓙浼氬彈鍒板姏鐨勫獎鍝嶃?

clip_image042

嫻佸鐞嗗紩鎿?/strong>錛?

GameByro瀹炵幇浜嗕竴涓畬鍏ㄨ法騫沖彴鐨勬祦澶勭悊寮曟搸銆備嬌鐢ㄨ呭彲浠ユ柟渚跨殑鍒╃敤瀹冨畬鎴愬綰跨▼浠誨姟錛屽璧勬簮鐨勫姞杞界瓑錛屽畬鍏ㄥ彂鎸ュ澶勭悊鍣ㄥ鉤鍙扮殑濞佸姏錛岃屼笉鐢ㄥ叧娉ㄥ簳灞傜粏鑺傘?

鏁堢巼鍒嗘瀽錛?/strong>

涓轟簡瀵笹ameByro榪涜鍏ㄩ潰鐨勮瘎浼幫紝絎旇呰瘯鐫瀵笹ameByro鐨勬覆鏌撴晥鐜囪繘琛屼簡綆鍗曠殑嫻嬭瘯錛屾湰浜虹殑鏈哄櫒閰嶇疆濡備笅錛?

l CPU錛欵2180

l GPU錛?400PRO

l 鍐呭瓨錛?GB

鍩烘湰鍙互浠h〃褰撳墠涓綆绔帺瀹剁殑閰嶇疆銆?

鍦烘櫙涓錛?

涓嬪浘涓轟竴涓ぇ鐨勫澶栧湴褰㈠満鏅紝鍖呮嫭寤虹瓚鐗┿佹按闈紝鍦拌〃浣跨敤浜嗘硶綰胯創鍥撅紝闄や簡妞嶈浠ュ錛屽熀鏈寘鍚玀MORPG鐨勫ぇ閮ㄥ垎瀹ゅ鍦烘櫙瑕佺礌銆傛渶鍚庢祴璇曠殑緇撴灉騫沖潎甯ф暟涓?1甯с傚撫鏁板亸浣庣殑鍘熷洜鏄暣涓満鏅嬌鐢ㄤ簡閫愬儚绱犲厜鐓э紝鍚屾椂娌℃湁閲囩敤LOD榪涜浼樺寲銆?

clip_image044

鍦烘櫙浜?/strong>錛?

濡傚浘鎵紺哄満鏅腑鏈?00涓鑹插湪鍋氫笉鍚岀殑鍔ㄧ敾錛屾瘡涓鑹叉湁51涓楠鹼紝鏁翠釜鍦烘櫙鍏辨湁287900涓杈瑰艦鍜?56600涓《鐐癸紝騫朵笖鍦烘櫙涓湁涓涓偣鍏夋簮鍜屽鉤琛屽厜婧愶紝鍦ㄦ病鏈夐槾褰辯殑鎯呭喌涓嬪撫鏁板ぇ綰﹀湪27~28甯у乏鍙熾傝繖浜涢楠煎姩鐢諱嬌鐢ㄤ簡GameByro鎻愪緵鐨勯楠煎姩鐢諱紭鍖栨柟娉曪紝鎬ц兘鏈変竴瀹氭彁鍗囥?

clip_image046

鐢變互涓婄粨鏋滃彲浠ョ湅鍑猴紝GameByro鐨勯楠煎姩鐢繪覆鏌撴晥鐜囧皻鍙紝鑰屽澶栧湴褰㈡覆鏌撶郴緇熺殑鎬ц兘紼嶆樉涓嶈凍錛屽啀娌℃湁瑙掕壊鍜屾琚殑鎯呭喌涓嬶紝浠呰兘杈懼埌22甯у乏鍙籌紝濡傛灉鍦ㄥ疄闄呯殑娓告垙鐜榪樿綆椾笂鍏朵粬娓告垙緋葷粺錛堢綉緇溿侀昏緫銆乁I絳夛級鐨勬ц兘娑堣楋紝榪欐槸涓嶈凍浠ヨ鐜╁嫻佺晠榪涜娓告垙鐨勶紝榪橀渶榪涗竴姝ユ墜鍔ㄧ殑浼樺寲銆?

鎬葷粨錛?

GameByro鎷ユ湁涓濂楃伒媧葷殑鏋舵瀯錛屼究浜庝嬌鐢ㄥ拰鎵╁睍錛屾槗浜庝笂鎵嬶紱閰嶅鐨勫紑鍙戝伐鍏鋒瘮杈冮綈鍏紝鎷ユ湁瀹屾暣鐨勭編鏈紑鍙戞祦紼嬶紱瀹屽叏鏀寔璺ㄥ鉤鍙幫紝渚夸簬娓告垙鐨勭Щ妞嶏紱鍚屾椂鐢變簬涓轟簡淇濊瘉鐏墊椿鎬э紝鍦ㄨ璁′笂闈㈡瘮杈冨亸閲嶄簬鍔熻兘鍜屾墿灞曪紝鑰屼笉鏄ц兘銆?

楂樺害鐨勫彲瀹氬埗鎬у甫鏉ョ殑鏄緝浣庣殑鏁村悎錛孏ameByro娌℃湁鎻愪緵娓告垙妗嗘灦錛屽湴鍥劇紪杈戝櫒涔熶粎浠呭疄鐜頒簡鏈閫氱敤鐨勫姛鑳斤紝鍗沖湴琛ㄥ拰鐗╀歡鐨勬憜鏀俱傝繖灝辮鏄庯紝濡傛灉瑕佷嬌鐢℅ameByro寮鍙戜駭鍝侊紝灝遍渶瑕佽嚜宸辨暣鍚圙ameByro錛屽茍瀵瑰叾榪涜涓瀹氱殑淇敼鍜屾墿灞曘傝繖涔熸槸瀹冧笌UnrealEngine3鍖哄埆鏈澶х殑鍦版柟銆?

 

浣滆咃細鍙惰搗娑熸吉



CrazyDev 2010-04-19 22:29 鍙戣〃璇勮
]]>
GPU紼嬪簭鍦℅ameByro涓殑浣跨敤錛堣漿錛?/title><link>http://m.shnenglu.com/CrazyDev/articles/113013.html</link><dc:creator>CrazyDev</dc:creator><author>CrazyDev</author><pubDate>Mon, 19 Apr 2010 13:53:00 GMT</pubDate><guid>http://m.shnenglu.com/CrazyDev/articles/113013.html</guid><wfw:comment>http://m.shnenglu.com/CrazyDev/comments/113013.html</wfw:comment><comments>http://m.shnenglu.com/CrazyDev/articles/113013.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/CrazyDev/comments/commentRss/113013.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/CrazyDev/services/trackbacks/113013.html</trackback:ping><description><![CDATA[閾炬帴錛?a href="http://m.shnenglu.com/rise-worlds/archive/2009/04/22/80699.html">http://m.shnenglu.com/rise-worlds/archive/2009/04/22/80699.html</a><br><br> <h4>寮曡█錛?/h4> <p>GameBryo鎷ユ湁涓濂楀鏉傜殑鏉愯川緋葷粺錛岃繖濂楁潗璐ㄧ郴緇熷彲浠ユ牴鎹覆鏌撳璞$殑鐘舵佸拰灞炴х敓鎴愪笉鍚岀殑shader浠g爜錛屾彁楂樹簡娓叉煋嫻佺▼鐨勯傚簲鎬э紝鍙互浣夸綘瀹氫箟涓濂楁潗璐ㄨ兘閫傚簲澶氱娓叉煋瀵硅薄銆傚悓鏃訛紝GameByro灝唖hader鐨勫垵濮嬪寲鍜屼嬌鐢ㄦ彃浠跺寲錛屾柟渚夸笌緹庢湳宸ュ叿闆嗘垚錛屽茍涓斿疄鐜頒簡騫沖彴鏃犲叧鎬с備負浜嗗疄鐜拌繖浜涚洰鐨勶紝GameByro浣跨敤浜嗕竴濂楀鏉傜殑鏈哄埗錛屾湰鏂囦富瑕佽В鏋怗ameByro濡備綍鐢熸垚銆佺紪璇戝茍浣跨敤shader浠g爜銆? <h4>Shader</h4> <p>GameBryo鐨剆hader鐨勬帴鍙e皝瑁呭湪NiShader涓紝欏剁偣鏁版嵁嫻佸0鏄庯紝甯擱噺琛ㄧ殑璁塊棶錛屾覆鏌撶姸鎬佺殑璁劇疆閮芥槸閫氳繃榪欎釜綾伙紙鏈夌偣綾諱技浜嶥3Deffect錛夈傚湪紼嬪簭榪愯NiShader鏄敱NiShaderFactory璐熻矗綆$悊鐨勶紝NiShaderFactory閫氳繃NiShaderLibrary浠庢枃浠朵腑鍒涘緩shader錛岀敤鍏ㄥ眬鎬х殑map綆$悊璧鋒潵銆侼iShaderLibrary閫氳繃瑙f瀽shader鏂囨湰鍒涘緩NiShader瀵硅薄錛屽茍璋冪敤3D鍥懼艦鎺ュ彛緙栬瘧shader浠g爜錛屽皢榪欎釜綾諱互dll鐨勫艦寮忓皝瑁咃紝灝卞彲浠ヤ綔涓烘彃浠舵潵浣跨敤銆侼iShader綾葷殑鍒涘緩鍙互閫氳繃瑙f瀽鏂囦歡鏉ヨ繘琛岋紝涔熷彲浠ラ氳繃C++鐨勭被鏉ュ畾鍒訛紝鍙渶浠嶯iShader涓婄戶鎵垮嵆鍙侴ameByro涓篜C騫沖彴鎻愪緵浜嗕竴涓狽iD3DXEffectShaderLib搴擄紝榪欎釜搴撴彁渚涗簡瑙f瀽shader鏂囦歡鍜屽垵濮嬪寲shader瀵硅薄鐨勫姛鑳姐傜敤鎴峰彧闇鎸塆ameByro瀹氫箟鐨勬牸寮忕紪鍐檚hader浠g爜鐨勮鎰忓拰娉ㄩ噴錛孨iD3DXEffectShaderLibrary灝變細鏍規嵁鏂囨湰鏉ュ垱寤篘iD3Dshader瀵硅薄錛屽湪搴旂敤紼嬪簭涓氨鍙互閫氳繃Techinqe鐨勫悕縐版潵璁塊棶榪欎釜瀵硅薄銆傞氳繃榪欑鏈哄埗錛屾垜浠皢shader鏂囨湰鏂囦歡鏀懼湪鐩稿叧緹庢湳宸ュ叿鎸囧畾鐨勭洰褰曚笅錛屽湪宸ュ叿涓氨鍙互浣跨敤榪欎簺shader錛屽茍涓旇兘澶熼氳繃shader鐨勮鎰忓拰娉ㄩ噴涓虹浉鍏沖弬鏁板拰鍙橀噺鐢熸垚UI錛屾柟渚跨編鏈皟璇曘? <p>WIN騫沖彴涓婄殑鏁翠釜嫻佺▼濡備笅錛? <p>1. 搴旂敤紼嬪簭鍦ㄥ惎鍔ㄦ椂浼氬厛鍒濆鍖栨暣涓猻hader緋葷粺錛屾帴涓嬫潵瀵煎叆Shader瑙f瀽搴撳拰鍔犺澆搴擄紙dll鐨勫艦寮忥級銆? <p>2. 鎺ヤ笅鏉ュ簲鐢ㄧ▼搴忓皢NiD3DShader鐨勫垵濮嬪寲宸ヤ綔濮旀墭緇橬iShaderLibrary鏉ュ鐞嗭紝NiShaderLibrary棣栧厛閫氳繃NiD3DXEffectLoader杞藉叆鎵鏈夌殑shader鏂囨湰鏂囦歡錛屽茍閫氳繃NiD3DXEffectParser瑙f瀽鏂囨湰鐢熸垚NiD3DXEffectFile瀵硅薄錛屽悓鏃禢iD3DXEffectLoader榪樿礋璐e皢shader浠g爜緙栬瘧鎴愪簩榪涘埗褰㈠紡鐨凣PU紼嬪簭銆? <p>3. 鏈鍚庣敱NiD3DXEffectTechnique璐熻矗閫氳繃NiD3DXEffectFile涓婄殑淇℃伅鐢熸垚NiD3Dshader瀵硅薄銆? <p>4. 鎵鏈夌殑shader瀵硅薄鍒涘緩鍚庯紝NiShaderLibrary鐨勫垵濮嬪寲灝辯粨鏉熶簡錛屾渶鍚庣敱NiShaderFactory璐熻矗緇熶竴綆$悊銆? <h4>鏉愯川錛?/h4> <p>NiMaterial涓烘覆鏌撳璞$敓鎴愬拰瀹氫箟Shader,NiMaterialInstance涓烘覆鏌撳璞″垎閰?鍜孋ach Shader銆侼iFragmentMaterial鎻愪緵浜嗕竴涓猄hader Tree妗嗘灦錛屽湪瀹冪殑緇ф壙綾諱腑鍙互浣跨敤榪欎釜妗嗘灦鎼緩shader tree銆傝繖涓満鍒跺厑璁窷iFragmentMaterial鏍規嵁瀵硅薄涓嶅悓鐨勬覆鏌撶姸鎬佺敓鎴愪笉鍚岀殑shader浠g爜錛孋ach鍦ㄥ唴瀛樹腑錛屽茍淇濆瓨鍒扮鐩樻枃浠躲侴ameByro鎻忚堪絎︾殑姒傚康澶ч噺浣跨敤錛屽寘鎷墠闈㈡彁鍒扮殑Shader瑙f瀽榪囩▼涔熸槸閫氳繃鎻忚堪絎︽潵浼犻掍俊鎭傚湪鏉愯川緋葷粺涓富瑕佷嬌鐢ㄤ簡NiMaterialDescriptor鍜孨iGPUProgramDescriptor榪欎釜涓や釜綾誨仛鎻忚堪絎︼紝榪欎袱涓被涓繚瀛樼殑淇℃伅鏄吋瀹圭殑錛岄兘鏄負浜嗘弿榪版煇縐嶆潗璐ㄥ湪娓叉煋瀵硅薄鐨勬煇涓鐗瑰畾娓叉煋鐘舵佷笅鎵瀵瑰簲鐨凣PU紼嬪簭鐨勭壒寰併侼iFragmentMaterial閫氳繃娓叉煋鐩爣鐨勭姸鎬佸拰灞炴х敓鎴怤iMaterialDescriptor錛屽茍閫氳繃NiMaterialDescriptor鏌ユ壘鍖歸厤鐨剆hader錛屽鏋滄壘涓嶅埌錛屽垯閫氳繃shader tree鐢熸垚鐩稿簲鐨剆hader紼嬪簭錛屽茍淇濆瓨鍒扮鐩樻枃浠朵腑銆傚綋涓嬩竴嬈″簲鐢ㄧ▼搴忓惎鍔ㄦ椂灝卞彲浠ラ氳繃榪欎釜鏂囦歡鐩存帴鍒涘緩NiShader瀵硅薄銆傚彲浠ヨ閫氳繃NiFragmentMaterial鐢熸垚鐨剆hader浠g爜鏄負鐗瑰畾鐨勬覆鏌撳璞″湪鐗瑰畾鐨勬儏鍐典笅閲忚韓鎵撻犵殑銆? <p>鏁翠釜榪囩▼鐨勮緇嗘祦紼嬪涓嬶細 <p>1. 鍦ㄦ瘡嬈℃覆鏌撲竴涓墿浣撲箣鍓嶏紝NiMaterialInstance浼氬厛鍒ゆ柇榪欎釜鐗╀綋鐨剆hader紼嬪簭鏄惁闇瑕佹洿鏂幫紝濡傛灉涓嶉渶瑕佹洿鏂幫紝灝辯洿鎺ヨ繑鍥炲綋鍓岰ach鐨凬iShader錛涘鏋滈渶瑕佹洿鏂幫紝 NiMaterialInstance棣栧厛浼氭牴鎹墿浣撶殑娓叉煋鐘舵佷負鍏剁敓鎴愪竴涓狽iMaterialDescriptor錛岀劧鍚庡皢榪欎釜NiMaterialDescriptor鍜屽綋鍓岰ach浣忕殑NiShader榪涜姣旇緝錛屽鏋滃尮閰嶄粛鐒惰繑鍥炲綋鍓岰ach鐨凬iShader錛屽鏋滀笉鍖歸厤錛屽皢鑾峰緱shader鐨勫伐浣滆漿浜ょ粰NiMaterial榪涜銆? <p>2. NiMaterial棣栧厛閫氳繃榪欎釜NiShaderFactory 鏌ヨ鍖歸厤榪欎釜NiMaterialDescriptor鐨凬iShader錛屽鏋滄壘涓嶅埌錛屽氨閫氳繃NiMaterialDescriptor鐢熸垚NiShader錛屽悓鏃剁敓鎴愪竴孌礢hader浠g爜錛屽茍淇濆瓨鍒頒互shader鎻忚堪絎︿腑鐨勭壒寰佺爜鏉ュ懡鍚嶅搴旂殑shader鏂囦歡銆? <p>3. 褰撹幏寰楃浉搴旂殑NiShader瀵硅薄鍚庯紝NiMaterialInstance浼氳皟鐢∟iShader鐨凷etupGeometry鎺ュ彛錛屽湪榪欎釜鎺ュ彛涓細榪涜欏剁偣澹版槑銆? <p>浠ヤ笅鏄疦iMaterialInstance涓篏eometry閫夋嫨shader鐨勪唬鐮侊細 <p>NiShader* NiMaterialInstance::GetCurrentShader(NiRenderObject* pkGeometry, <p>const NiPropertyState* pkState, <p>const NiDynamicEffectState* pkEffects) <p>{ <p>if (m_spMaterial) <p>{ <p>bool bGetNewShader = m_eNeedsUpdate == DIRTY; <p>if (m_eNeedsUpdate == UNKNOWN) <p>bGetNewShader = pkGeometry->GetMaterialNeedsUpdateDefault(); <p>// Check if shader is still current <p>if (bGetNewShader && m_spCachedShader) <p>{ <p>bGetNewShader = !m_spMaterial->IsShaderCurrent(m_spCachedShader, <p>pkGeometry, pkState, pkEffects, m_uiMaterialExtraData); <p>} <p>// Get a new shader <p>if (bGetNewShader) <p>{ <p>NiShader* pkNewShader = m_spMaterial->GetCurrentShader( <p>pkGeometry, pkState, pkEffects, m_uiMaterialExtraData); <p>if (pkNewShader) <p>{ <p>NIASSERT(m_spCachedShader != pkNewShader); <p>ClearCachedShader(); <p>m_spCachedShader = pkNewShader; <p>if (!pkNewShader->SetupGeometry(pkGeometry, this)) <p>ClearCachedShader(); <p>} <p>else <p>{ <p>ClearCachedShader(); <p>} <p>} <p>m_eNeedsUpdate = UNKNOWN; <p>} <p>return m_spCachedShader; <p>} <p>濡傛灉鎯抽氳繃NiFragmentMaterial瀹炵幇鑷繁鐨剆hader tree灝遍渶瑕佸湪NiFragmentMaterial鎻愪緵鐨勬帴鍙d腑瀹炵幇鑷繁鎷艱浠g爜鐨勯昏緫錛屼唬鐮佸潡鐢盢iMaterialLibraryNode灝佽錛孨iMaterialLibraryNode鏃㈠彲浠ョ洿鎺ュ啓C++浠g爜鏉ュ畾涔夛紝涔熷彲浠ュ厛鍐欐垚XML鑴氭湰錛屽啀鐢變笓闂ㄧ殑瑙f瀽宸ュ叿杞崲鎴怌++浠g爜銆? <p>鐢盢iStandardMaterial鐢熸垚鐨剆hader浠g爜鏂囦歡濡備笅鍥炬墍紺猴細 <p><a href="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GPUGameByro_9EC0/clip_image002_2.jpg"><img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image002 border=0 alt=clip_image002 src="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GPUGameByro_9EC0/clip_image002_thumb.jpg" width=244 height=141></a> <p>鏂囦歡鍚嶅氨鏄疦iMaterialDescriptor鐨勬帺鐮侊紝鐢ㄦ潵鏍囪瘑鐨剆hader浠g爜鐨勮涓恒? <p>Shader浠g爜鐨勮涓烘弿榪板涓嬶細 <p>Shader description: <p>APPLYMODE = 1 <p>WORLDPOSITION = 0 <p>WORLDNORMAL = 0 <p>WORLDNBT = 0 <p>WORLDVIEW = 0 <p>NORMALMAPTYPE = 0 <p>PARALLAXMAPCOUNT = 0 <p>BASEMAPCOUNT = 1 <p>NORMALMAPCOUNT = 0 <p>DARKMAPCOUNT = 0 <p>DETAILMAPCOUNT = 0 <p>BUMPMAPCOUNT = 0 <p>GLOSSMAPCOUNT = 0 <p>GLOWMAPCOUNT = 0 <p>CUSTOMMAP00COUNT = 0 <p>CUSTOMMAP01COUNT = 0 <p>CUSTOMMAP02COUNT = 0 <p>CUSTOMMAP03COUNT = 0 <p>CUSTOMMAP04COUNT = 0 <p>DECALMAPCOUNT = 0 <p>FOGENABLED = 0 <p>ENVMAPTYPE = 0 <p>PROJLIGHTMAPCOUNT = 0 <p>PROJLIGHTMAPTYPES = 0 <p>PROJLIGHTMAPCLIPPED = 0 <p>PROJSHADOWMAPCOUNT = 0 <p>PROJSHADOWMAPTYPES = 0 <p>PROJSHADOWMAPCLIPPED = 0 <p>PERVERTEXLIGHTING = 1 <p>UVSETFORMAP00 = 0 <p>UVSETFORMAP01 = 0 <p>UVSETFORMAP02 = 0 <p>UVSETFORMAP03 = 0 <p>UVSETFORMAP04 = 0 <p>UVSETFORMAP05 = 0 <p>UVSETFORMAP06 = 0 <p>UVSETFORMAP07 = 0 <p>UVSETFORMAP08 = 0 <p>UVSETFORMAP09 = 0 <p>UVSETFORMAP10 = 0 <p>UVSETFORMAP11 = 0 <p>POINTLIGHTCOUNT = 0 <p>SPOTLIGHTCOUNT = 0 <p>DIRLIGHTCOUNT = 0 <p>SHADOWMAPFORLIGHT = 0 <p>SPECULAR = 1 <p>AMBDIFFEMISSIVE = 0 <p>LIGHTINGMODE = 1 <p>APPLYAMBIENT = 0 <p>BASEMAPALPHAONLY = 0 <p>APPLYEMISSIVE = 0 <p>SHADOWTECHNIQUE = 0 <p>ALPHATEST = 0 <p>NiStanderMaterial灝辨槸鏍規嵁榪欎簺鎺╃爜鐨勬暟鎹潵鐢熸垚shader浠g爜錛岀敤鎴峰彲浠ラ氳繃閲嶈澆GenerateVertexShadeTree銆丟eneratePixelShadeTree銆丆reateShader榪欎簺鎺ュ彛鏉ュ畾涔夎嚜宸辯殑shader鐢熸垚瑙勫垯銆? <h4>澧炲姞鑷繁鐨勬覆鏌撴晥鏋滐細</h4> <p>閫氳繃鍓嶅嚑鑺傛垜浠彲浠ヤ簡瑙e埌錛屾兂瀹氫箟鑷繁鐨勬潗璐紝涓鏄氳繃緙栧啓shader浠g爜瀹屾垚銆傚湪搴旂敤紼嬪簭鍒濆鍖栫殑鏃跺欙紝榪欎簺shader浠g爜浼氳鍒濆鍖栨垚NiShader瀵硅薄錛岃繘涓姝ョ殑閫氳繃NiShader瀵硅薄鏉ュ垵濮嬪寲NiSingleShaderMaterial瀵硅薄錛屽茍鍒嗛厤緇欐覆鏌撳璞°傚湪GameByro榛樿鐨勬覆鏌撴祦紼嬩腑錛岃繖浜涙楠ら兘鏄嚜鍔ㄨ繘琛岀殑錛岀編鏈彧闇鍦?DMAX鎻掍歡涓負鍑犱綍浣撶殑鏉愯川鎸囧畾Shader紼嬪簭錛屽鍑哄埌nif鏂囦歡錛屽簲鐢ㄧ▼搴忓氨鑳芥紜姞杞藉茍娓叉煋錛涗簩鏄畾涔夎嚜宸辯殑NiMaterialFragment綾伙紝鍦ㄧ被涓畾涔夊浣曠敓鎴恠hader錛屽湪搴旂敤紼嬪簭榪愯鏃跺彧瑕佸皢榪欎釜綾葷殑瀹炰緥鎸囨淳緇欏嚑浣曚綋錛岃繖涓被灝變細鑷姩涓哄嚑浣曚綋鐢熸垚shader銆傝繖涓ょ鏂瑰紡瀵逛簬緹庢湳浜哄憳鏉ヨ錛屼富瑕佸尯鍒湪浜庯紝閲囩敤絎竴縐嶆柟娉曞畾涔夌殑鏉愯川錛屽叾娓叉煋鏁版嵁鐨勮緗繀欏諱弗鏍肩鍚坰hader浠g爜涓墍闇鐨勬暟鎹紝鍚﹀垯灝變細鎶ラ敊銆傦紙姣斿璇達紝欏剁偣鏁版嵁嫻佸繀欏諱弗鏍肩鍚坰hader紼嬪簭鐨勫畾涔夛紝蹇呴』涓簊hader涓瘡涓噰鏍峰櫒鎻愪緵鏍煎紡姝g‘鐨勭汗鐞嗭級錛涜岄噰鐢ㄧ浜岀鏂規硶瀹氫箟鐨勬潗璐紝灝辨湁寰堥珮鐨勫閿欏拰閫傚簲鎬э紝浣嗘槸榪欑瀹歸敊鎬у拰閫傚簲鎬ч渶瑕佽嚜宸卞啓浠g爜鏉ュ畬鎴愶紝GameByro鎻愪緵鐨凬iStanderMaterial灝辨彁渚涗簡榪欏瀹屾暣鐨勬満鍒躲傛瘡涓創鍥炬Ы鍐呯殑璐村浘濡傛灉浣犺緗氨浼氱敓鎴愮浉搴旂殑璐村浘澶勭悊嫻佺▼錛屽鏋滀笉璁劇疆錛屽氨娌℃湁榪欏紶璐村浘鐨勫鐞嗘祦紼嬨? <p>涓轟簡楠岃瘉榪欎釜榪囩▼錛岀瑪鑰呭皾璇曞鍔犱簡涓涓嚜宸辯殑shader鐗規晥鈥斺擲ubSurfaceScattering錛岀畝縐?s錛屽叾鍘熺悊鏄ā鎷熷厜鍦ㄥ崐閫忔槑鐗╀綋涓暎灝勭殑鏁堟灉銆傜敱浜庤鏁堟灉鏃犻』棰勫鐞嗚繃紼嬶紝鎵鏈夌殑璐村浘鍧囨潵鑷鐩樻枃浠訛紝鎵浠ユ瘮杈冨鏄撹瀺鍚堝埌GameByro宸ヤ綔嫻佷腑銆? <p>絎旇呭皢鍦‵X COMPOSER涓皟璇曢氳繃鐨刦x鏂囦歡鏀懼叆SDK涓殑SDK\Win32\Shaders\Data鐩綍涓嬶紝鍦?DMAX鐨勬潗璐ㄩ潰鏉塊夋嫨GameByroShader錛岀劧鍚庡氨鍙湪鏄劇ずshader鐨勭粍鍚堟涓湅鍒版枃浠朵腑瀹氫箟鐨凾echinqe錛岄夋嫨鐐瑰嚮apply鎸夐挳錛屽氨浼氬嚭鐜拌嚜瀹氫箟鐨勫弬鏁拌皟鏁寸晫闈€? <p><a href="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GPUGameByro_9EC0/clip_image004_2.jpg"><img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image004 border=0 alt=clip_image004 src="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GPUGameByro_9EC0/clip_image004_thumb.jpg" width=244 height=175></a> <p><a href="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GPUGameByro_9EC0/clip_image006_2.jpg"><img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image006 border=0 alt=clip_image006 src="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GPUGameByro_9EC0/clip_image006_thumb.jpg" width=244 height=210></a> <p>閫氳繃璋冩暣鍙傛暟錛屾渶緇堝緱鍒扮毊鑲ゅ拰鐜夊櫒鐨勬覆鏌撴晥鏋滃涓嬶細 <p><a href="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GPUGameByro_9EC0/clip_image007_2.jpg"><img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image007 border=0 alt=clip_image007 src="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GPUGameByro_9EC0/clip_image007_thumb.jpg" width=244 height=188></a> <p><strong></strong><strong>鐨偆</strong> <p><strong><a href="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GPUGameByro_9EC0/clip_image009_2.jpg"><img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image009 border=0 alt=clip_image009 src="http://m.shnenglu.com/images/cppblog_com/rise-worlds/WindowsLiveWriter/GPUGameByro_9EC0/clip_image009_thumb.jpg" width=244 height=172></a></strong> <p><strong></strong><strong>鐜夊櫒</strong> <h4>鎬葷粨</h4> <p>GameByro鐨勮繖濂楀紑鍙戞祦紼嬮潪甯告柟渚跨洿瑙傦紝浣嗘槸緹庢湳浠呰兘涓簊hader紼嬪簭鍒嗛厤闈欐佺殑鏁版嵁婧愶紝姣斿璇村厜鐓у浘絳夛紝CubeMap絳夛紱鑰屼竴浜涘湪紼嬪簭涓疄鏃剁敓鎴愮殑綰圭悊鏁版嵁鍒欐棤娉曟暣鍚堝埌緹庢湳宸ュ叿涓紝姣斿璇撮槾褰卞浘銆佹姌灝勫浘銆佸弽灝勫浘絳夛紝榪欎簺閮介渶瑕佺▼搴忓啓浠g爜鏉ュ疄鐜般傝皟璇曡搗鏉ュ氨涓嶅ぇ鏂逛究浜嗐傚ぇ閮ㄥ垎鎯呭喌涓嬶紝鎴戜滑鍙渶瑕佷嬌鐢℅ameByro鎻愪緵鐨凬iStanderMaterial灝卞彲浠ュ畬鎴愬ぇ閮ㄥ垎鏉愯川鐨勯渶姹傦紝鐗規畩鐨勬晥鏋滃彲浠ヨ嚜宸卞啓shader鎴栬呴氳繃寮曟搸鎻愪緵鐨剆hader搴撴潵瀹屾垚錛屽彧鏈夊綋鎴戜滑闇瑕佸嵆鏍規嵁澶嶆潅鐨勬儏鍐靛仛寰堝涓嶅悓鐨勫鐞嗘椂錛屾垜浠墠闇瑕侀噸杞絅iFragmentMaterial鎼緩鑷繁鐨剆hader tree銆備笉榪囨惌寤簊hader tree鐨勭▼搴忎竴鑸瘮杈冨鏉傦紝緙栧啓闅懼害澶э紝铏界劧寮曟搸鍏佽閫氳繃XML鏂囦歡鏉ョ紪鍐欐潗璐ㄨ妭鐐癸紝浣嗘槸浣跨敤璧鋒潵浠嶇劧涓嶆柟渚褲侴ameByro騫舵病鏈夋彁渚涚浉鍏崇殑鍚庢湡澶勭悊鐨勫紑鍙戝伐鍏鳳紝鍚庢湡澶勭悊鐨勭壒鏁堝茍涓嶈兘鎵瑙佸嵆鎵寰楋紝榪欐柟闈㈣繕闇瀹屽杽銆? <p>GameByro涓哄嚑浣曚綋鍦ㄧ壒瀹氱殑鐜涓嬬敓鎴愪笓鐢ㄧ殑shader浠g爜錛屽叿鏈変竴瀹氱殑鐏墊椿鎬э紝浣嗘槸涔熶粯鍑轟簡浠ヤ笅浠d環錛? <p>l 鍒嗘瀽鍑犱綍浣撶殑灞炴у拰褰撳墠鐘舵侊紝涓哄叾鐢熸垚shader浠g爜鐨勮繃紼嬫湁鎬ц兘鎹熻椼? <p>l Shader浠g爜鐢熸垚鍚庝細淇濆瓨鍒扮鐩樻枃浠朵腑錛岃繖涓繃紼嬪鏋滀笉浣跨敤寮傛錛屽彲鑳戒細寮曡搗闃誨銆? <p>l 鐢熸垚鐨凬iShader瀵硅薄浼氭湁鍐呭瓨娑堣椼傜敱浜嶨ameByro榛樿鐨勫疄鐜版槸灝嗘墍鏈夌殑shader鏂囦歡鍒濆鍖栨垚NiShader瀵硅薄錛屾墍浠ュ綋娓告垙榪愯鐨勬椂闂翠箙浜嗕互鍚庝細鐢熸垚澶ч噺鐨剆hader鏂囦歡錛岃繖鏃跺欏唴瀛樼殑娑堣楀彲鑳戒細寰堝彲瑙傦紝鍚屾椂鍔犺澆鐨勬椂闂翠篃浼氬鍔犮備笉榪囧彲浠ヨ嚜宸辨帶鍒跺姞杞界殑嫻佺▼錛屽湪榪欓噷榪涜鎬ц兘浼樺寲銆? <p> </p> <p>浣滆咃細鍙惰搗娑熸吉</p> <img src ="http://m.shnenglu.com/CrazyDev/aggbug/113013.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/CrazyDev/" target="_blank">CrazyDev</a> 2010-04-19 21:53 <a href="http://m.shnenglu.com/CrazyDev/articles/113013.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://m.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://sdmsjd.com" target="_blank">久久综合九色综合欧美狠狠</a>| <a href="http://kissgz.com" target="_blank">亚洲精品一区二区三区四区高清</a>| <a href="http://9lunli.com" target="_blank">亚洲欧美另类久久久精品2019</a>| <a href="http://xianjiacf.com" target="_blank">农夫在线精品视频免费观看</a>| <a href="http://caosee.com" target="_blank">久久精品国产亚洲一区二区</a>| <a href="http://9924338.com" target="_blank">欧美一区二区三区的</a>| <a href="http://www-77663.com" target="_blank">亚洲桃花岛网站</a>| <a href="http://337791.com" target="_blank">亚洲欧美久久久</a>| <a href="http://789583.com" target="_blank">久久国产精品久久久</a>| <a href="http://di4see.com" target="_blank">久久夜色精品国产欧美乱极品</a>| <a href="http://by2866.com" target="_blank">久久综合网hezyo</a>| <a href="http://by5130.com" target="_blank">美日韩丰满少妇在线观看</a>| <a href="http://www-401313.com" target="_blank">久久综合久色欧美综合狠狠 </a>| <a href="http://www-5888c.com" target="_blank">欧美欧美全黄</a>| <a href="http://yiluee.com" target="_blank">欧美三级视频在线</a>| <a href="http://2111952.com" target="_blank">国产农村妇女毛片精品久久麻豆</a>| <a href="http://www87bbw.com" target="_blank">国产区在线观看成人精品</a>| <a href="http://www-4012345.com" target="_blank">韩国精品在线观看</a>| <a href="http://6666345.com" target="_blank">亚洲美女淫视频</a>| <a href="http://tom3958.com" target="_blank">午夜亚洲精品</a>| <a href="http://2589999.com" target="_blank">亚洲高清一区二</a>| <a href="http://395493.com" target="_blank">亚洲精品乱码久久久久久</a>| <a href="http://ybshg.com" target="_blank">亚洲少妇一区</a>| <a href="http://dailymailnepal.com" target="_blank">久久精品一二三区</a>| <a href="http://0999555.com" target="_blank">欧美日韩精品一区二区三区四区</a>| <a href="http://noeljgq.com" target="_blank">国产精品系列在线</a>| <a href="http://92xx00.com" target="_blank">91久久精品国产91久久性色</a>| <a href="http://caofujia.com" target="_blank">亚洲午夜久久久久久久久电影院 </a>| <a href="http://gaysexcube.com" target="_blank">亚洲综合久久久久</a>| <a href="http://119773.com" target="_blank">蜜桃av一区二区</a>| <a href="http://91nbs.com" target="_blank">国产日产精品一区二区三区四区的观看方式 </a>| <a href="http://hwgjcm.com" target="_blank">欧美精品乱人伦久久久久久</a>| <a href="http://xingzhiyin85.com" target="_blank">国产精品国产三级国产专播精品人</a>| <a href="http://av0333.com" target="_blank">国产视频精品xxxx</a>| <a href="http://xiaofan123.com" target="_blank">日韩一区二区免费高清</a>| <a href="http://9585865.com" target="_blank">久久精品国产亚洲精品</a>| <a href="http://chaoxibg.com" target="_blank">亚洲精品专区</a>| <a href="http://zisxks.com" target="_blank">久久伊人免费视频</a>| <a href="http://5849595.com" target="_blank">欧美成年网站</a>| <a href="http://bjopl.com" target="_blank">午夜精品久久一牛影视</a>| <a href="http://9kkkb.com" target="_blank">欧美不卡视频一区发布</a>| <a href="http://buyiker.com" target="_blank">国产视频观看一区</a>| <a href="http://9486322.com" target="_blank">亚洲一二区在线</a>| <a href="http://25axxa.com" target="_blank">亚洲国产成人av</a>| <a href="http://xiaocao-av.com" target="_blank">亚洲欧美文学</a>| <a href="http://343119.com" target="_blank">亚洲激情成人</a>| <a href="http://av0333.com" target="_blank">久久免费视频一区</a>| <a href="http://1616mz.com" target="_blank">亚洲午夜久久久久久久久电影网</a>| <a href="http://konwoosh.com" target="_blank">久久久亚洲国产美女国产盗摄</a>| <a href="http://2016dp5330.com" target="_blank">欧美午夜寂寞影院</a>| <a href="http://rbet6365.com" target="_blank">亚洲巨乳在线</a>| <a href="http://vvvv81.com" target="_blank">欧美高清视频www夜色资源网</a>| <a href="http://by777117.com" target="_blank">亚洲永久在线</a>| <a href="http://y65v.com" target="_blank">国产精品久久久91</a>| <a href="http://91pinping.com" target="_blank">日韩小视频在线观看专区</a>| <a href="http://56lw.com" target="_blank">美女成人午夜</a>| <a href="http://www18bbav.com" target="_blank">久久久99免费视频</a>| <a href="http://by3799.com" target="_blank">国产视频久久久久久久</a>| <a href="http://50ud.com" target="_blank">午夜精品国产精品大乳美女</a>| <a href="http://6hzl8.com" target="_blank">99精品国产一区二区青青牛奶</a>| <a href="http://2424ddd.com" target="_blank">欧美国产日韩一区</a>| <a href="http://eguge.com" target="_blank">亚洲欧洲一级</a>| <a href="http://avicpharm.com" target="_blank">亚洲国产一区二区精品专区</a>| <a href="http://elpezomaha.com" target="_blank">久久一区二区视频</a>| <a href="http://www38044.com" target="_blank">1204国产成人精品视频</a>| <a href="http://syntheticnets.com" target="_blank">久久国产88</a>| <a href="http://www-662553.com" target="_blank">性做久久久久久免费观看欧美</a>| <a href="http://ztqsfw.com" target="_blank">国产精品嫩草影院一区二区</a>| <a href="http://erosgems.com" target="_blank">亚洲自拍偷拍一区</a>| <a href="http://482896.com" target="_blank">亚洲永久在线</a>| <a href="http://hoppecoke.com" target="_blank">国产一区99</a>| <a href="http://shalitao.com" target="_blank">久热精品视频在线观看一区</a>| <a href="http://jm-comic3.com" target="_blank">欧美在线你懂的</a>| <a href="http://dacellflex.com" target="_blank">精久久久久久</a>| <a href="http://oimeal.com" target="_blank">亚洲国产精品一区二区第一页 </a>| <a href="http://916969.com" target="_blank">亚洲国产日韩欧美一区二区三区</a>| <a href="http://www497171a.com" target="_blank">久久国产欧美日韩精品</a>| <a href="http://cz-hongbangfloor.com" target="_blank">亚洲欧美国产高清va在线播</a>| <a href="http://mascorcg.com" target="_blank">国产精品美女久久久久av超清</a>| <a href="http://388123cc.com" target="_blank">午夜精品一区二区三区在线播放</a>| <a href="http://www201314.com" target="_blank">亚洲少妇最新在线视频</a>| <a href="http://szzzzzzz.com" target="_blank">国产欧美日韩综合</a>| <a href="http://xaxkizlar.com" target="_blank">久久午夜羞羞影院免费观看</a>| <a href="http://hnspygxjscyfwzx.com" target="_blank">久久精品国产99国产精品澳门 </a>| <a href="http://036762.com" target="_blank">欧美另类专区</a>| <a href="http://4tobi.com" target="_blank">亚洲欧美日韩精品久久久久</a>| <a href="http://ynjzwh.com" target="_blank">性欧美xxxx视频在线观看</a>| <a href="http://8x588.com" target="_blank">国产综合av</a>| <a href="http://qcjpns.com" target="_blank">亚洲高清资源综合久久精品</a>| <a href="http://5456yy.com" target="_blank">欧美日韩免费区域视频在线观看</a>| <a href="http://holotu.com" target="_blank">亚洲视频狠狠</a>| <a href="http://zooxoft.com" target="_blank">欧美一区激情视频在线观看</a>| <a href="http://bocfdj.com" target="_blank">亚洲啪啪91</a>| <a href="http://xiaobi13.com" target="_blank">一区二区三区日韩在线观看 </a>| <a href="http://www17727.com" target="_blank">国产精品日韩一区</a>| <a href="http://xhs1039.com" target="_blank">久久另类ts人妖一区二区</a>| <a href="http://shno1steel.com" target="_blank">欧美成人免费大片</a>| <a href="http://xxxbobba.com" target="_blank">久久国产精品久久久久久久久久 </a>| <a href="http://1355456.com" target="_blank">亚洲精品久久嫩草网站秘色</a>| <a href="http://www-137999.com" target="_blank">亚洲精品国产视频</a>| <a href="http://608u.com" target="_blank">国产欧美精品国产国产专区</a>| <a href="http://ydpszcn.com" target="_blank">免费成人黄色</a>| <a href="http://bizhijidi.com" target="_blank">欧美揉bbbbb揉bbbbb</a>| <a href="http://9113c.com" target="_blank">久久久久久尹人网香蕉</a>| <a href="http://3534m.com" target="_blank">欧美日韩免费在线视频</a>| <a href="http://joy-learn.com" target="_blank">久久精品国产77777蜜臀 </a>| <a href="http://0359222.com" target="_blank">国产精品激情偷乱一区二区∴</a>| <a href="http://phitris.com" target="_blank">久久久久久成人</a>| <a href="http://www-988900.com" target="_blank">欧美日韩国产欧</a>| <a href="http://ll992.com" target="_blank">久久综合久色欧美综合狠狠</a>| <a href="http://yw133777.com" target="_blank">欧美麻豆久久久久久中文</a>| <a href="http://www-577511.com" target="_blank">欧美影院一区</a>| <a href="http://16355t.com" target="_blank">欧美日韩四区</a>| <a href="http://9585865.com" target="_blank">欧美国产日韩一区二区</a>| <a href="http://saobitv.com" target="_blank">国产日韩欧美在线视频观看</a>| <a href="http://yw6632.com" target="_blank">亚洲精品久久久久久久久</a>| <a href="http://660507ww.com" target="_blank">国产一区二区三区最好精华液</a>| <a href="http://dsbangx.com" target="_blank">99一区二区</a>| <a href="http://carboarm.com" target="_blank">亚洲人体偷拍</a>| <a href="http://y66776.com" target="_blank">久久视频一区二区</a>| <a href="http://xpfuli.com" target="_blank">欧美在线地址</a>| <a href="http://84172199.com" target="_blank">欧美日韩一区二区三区在线</a>| <a href="http://jnhrjixie.com" target="_blank">欧美成人一区二区三区</a>| <a href="http://s3yx.com" target="_blank">国产日韩欧美综合一区</a>| <a href="http://cancerrxa.com" target="_blank">亚洲另类视频</a>| <a href="http://ridenimbus.com" target="_blank">亚洲片在线资源</a>| <a href="http://23230066.com" target="_blank">免费不卡在线视频</a>| <a href="http://xingda-sh.com" target="_blank">久久久久国产成人精品亚洲午夜</a>| <a href="http://www-800778.com" target="_blank">欧美日韩亚洲一区二</a>| <a href="http://17kfe.com" target="_blank">亚洲人www</a>| <a href="http://heyzo1031.com" target="_blank">新67194成人永久网站</a>| <a href="http://psykoptic.com" target="_blank">亚洲私人影院在线观看</a>| <a href="http://www-s8.com" target="_blank">欧美日本不卡视频</a>| <a href="http://dayomall.com" target="_blank">亚洲国产精品第一区二区</a>| <a href="http://596361.com" target="_blank">激情五月综合色婷婷一区二区</a>| <a href="http://youminwang.com" target="_blank">亚洲一区二区三区高清不卡</a>| <a href="http://xunlei520.com" target="_blank">亚洲视屏在线播放</a>| <a href="http://755795.com" target="_blank">欧美色欧美亚洲另类二区</a>| <a href="http://laoyewo.com" target="_blank">亚洲精品免费一二三区</a>| <a href="http://www515678.com" target="_blank">亚洲精品你懂的</a>| <a href="http://gx2020.com" target="_blank">欧美ed2k</a>| <a href="http://www47011.com" target="_blank">亚洲全黄一级网站</a>| <a href="http://4123123.com" target="_blank">一区二区日韩免费看</a>| <a href="http://7sscc.com" target="_blank">欧美日韩免费高清</a>| <a href="http://joy-learn.com" target="_blank">中文亚洲免费</a>| <a href="http://15013010203.com" target="_blank">欧美一区二区三区免费视</a>| <a href="http://527937.com" target="_blank">国产女主播一区二区</a>| <a href="http://13789a.com" target="_blank">亚洲欧美日韩国产精品 </a>| <a href="http://www-87633.com" target="_blank">亚洲一本大道在线</a>| <a href="http://118017.com" target="_blank">国产精品视频久久久</a>| <a href="http://www49966.com" target="_blank">午夜精品视频在线观看</a>| <a href="http://yc7878.com" target="_blank">久久精品视频99</a>| <a href="http://z169.com" target="_blank">伊人久久综合</a>| <a href="http://402626com.com" target="_blank">看片网站欧美日韩</a>| <a href="http://990288.com" target="_blank">亚洲国产成人tv</a>| <a href="http://6633kj.com" target="_blank">一区二区三区日韩在线观看</a>| <a href="http://126900.com" target="_blank">国产精品成人观看视频免费</a>| <a href="http://by3180.com" target="_blank">亚洲一区综合</a>| <a href="http://hankanzhan.com" target="_blank">久色婷婷小香蕉久久</a>| <a href="http://wwwgay456.com" target="_blank">亚洲片在线资源</a>| <a href="http://wwwen41.com" target="_blank">欧美日韩精品一区二区在线播放</a>| <a href="http://36seaa.com" target="_blank">亚洲精品日韩激情在线电影</a>| <a href="http://www-q28.com" target="_blank">亚洲一区二区三区视频</a>| <a href="http://er65.com" target="_blank">国产欧美va欧美va香蕉在</a>| <a href="http://www433444.com" target="_blank">久久精品视频在线</a>| <a href="http://shalitao.com" target="_blank">亚洲成色精品</a>| <a href="http://hzjqkj.com" target="_blank">亚洲视频在线免费观看</a>| <a href="http://7a6a.com" target="_blank">国产亚洲欧美一区二区三区</a>| <a href="http://4449998.com" target="_blank">久久久亚洲人</a>| <a href="http://dd8uau0ncu.com" target="_blank">亚洲美女中出</a>| <a href="http://789469.com" target="_blank">欧美在线视频免费</a>| <a href="http://cpddddcc.com" target="_blank">亚洲国产成人久久</a>| <a href="http://jlkcjz.com" target="_blank">欧美日韩激情小视频</a>| <a href="http://486be.com" target="_blank">欧美一区二区高清</a>| <a href="http://tavbao.com" target="_blank">亚洲国产网站</a>| <a href="http://666043.com" target="_blank">久久久久www</a>| <a href="http://sihu121.com" target="_blank">99综合电影在线视频</a>| <a href="http://kk5551.com" target="_blank">国产伦精品一区二区三区高清版</a>| <a href="http://woniuminsu.com" target="_blank">久久久999成人</a>| <a href="http://495177.com" target="_blank">亚洲乱码国产乱码精品精 </a>| <a href="http://zw1019.com" target="_blank">亚洲欧美日韩国产一区二区三区 </a>| <a href="http://7749137.com" target="_blank">欧美好骚综合网</a>| <a href="http://www-919198.com" target="_blank">亚洲欧美电影院</a>| <a href="http://3344xo.com" target="_blank">亚洲欧洲一区二区天堂久久</a>| <a href="http://555888666.com" target="_blank">欧美亚洲视频</a>| <a href="http://51120guahao.com" target="_blank">亚洲美女黄网</a>| <a href="http://www35211.com" target="_blank">伊人色综合久久天天五月婷</a>| <a href="http://www78778.com" target="_blank">欧美日韩精品一区二区三区</a>| <a href="http://www353488.com" target="_blank">欧美一区二区啪啪</a>| <a href="http://wwwbbb888999.com" target="_blank">黄色精品一区二区</a>| <a href="http://www-188445.com" target="_blank">欧美日韩一区二区三区四区五区</a>| <a href="http://llyx888.com" target="_blank">久久精品国产亚洲高清剧情介绍</a>| <a href="http://339505.com" target="_blank">最近中文字幕日韩精品</a>| <a href="http://instantptt.com" target="_blank">久久精品观看</a>| <a href="http://wzxjzx.com" target="_blank">午夜一区二区三区在线观看 </a>| <a href="http://tt5125.com" target="_blank">亚洲国产婷婷</a>| <a href="http://360cabin.com" target="_blank">国产一区二三区</a>| <a href="http://7885888.com" target="_blank">国产精品白丝黑袜喷水久久久</a>| <a href="http://wwwq4yy.com" target="_blank">老牛嫩草一区二区三区日本</a>| <a href="http://811897.com" target="_blank">午夜亚洲视频</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>