4 126 3D 繪圖程式設計使用Direct3D9/10 與OpenGL 被照射到, 但事實上整個房間多多少 ... 它不跟任何光源互動, 不代表反射能力, 它代表物體本身所散發出的光在此把它設 ...
1243D繪圖程式設計使用Direct3D9/10與OpenGL圖4.1:有打光處理(左圖)跟無打光處理(右圖)的差別,右圖看起來像一片圖盤而不像一顆球算是在電影產業的3D繪圖,雖然他們不需要達到互動的繪圖執行效率,在計算打光時也都有經過某種程度的簡化在
SHARE
HTML
DOWNLOAD
Size:px
Startdisplayatpage:
Download"1243D繪圖程式設計使用Direct3D9/10與OpenGL圖4.1:有打光處理(左圖)跟無打光處理(右圖)的差別,右圖看起來像一片圖盤而不像一顆球算是在電影產業的3D繪圖,雖然他們不需要達到互動的繪圖執行效率,在計算打光時也都有經過某種程度的簡化在"
Error:
DownloadDocument
附殖金
4yearsago
Views:
1第4章打光第3章的範例chap03/sphere在建立球狀模型時,把位置比較高的頂點設定成比較亮的顏色,讓球看起來比較有立體感如果每個頂點都套用相同顏色,球看起來會像個圖盤這個動作已經算是一個很簡單的打光計算,本章會介紹如何讓Direct3D跟OpenGL自動計算打光簡單的來說,打光就是經過計算,來讓面對以及靠近光源的三角形看起來比較亮,正對光源的三角形可以反射出比較強的光線,而比較靠近光源的物體,光線的衰減程度會比較低Direct3D跟OpenGL的FixedFunctionPipeline可以自動對每個頂點做打光計算在固定流程繪圖FixedFunctionPipeline裡,打光都是在模型的頂點上計算,再經由內插把打光結果散播到三角形內部,以頂點為單位來計算打光被稱為per-vertexlighting如果使用Shader,可以把打光計算移到像素中來做,它可以得到比較精確的結果,這被稱為per-pixellighting,第12章會示範per-pixellighting4.1軟體模擬在實際使用Direct3D跟OpenGL的功能來打光之前,先把打光計算自行用C++程式碼來實作一次,這樣可以比較容易了解打光的過程這裡會用到一個新的資料欄位Normal,也就是面向,它用來指定模型上每個頂點所面對的方向,做打光計算時會用到它即時互動的電腦繪圖,為了執行效率考量,它常常是使用不太精確的數學來模擬自然界現象,只要求做到視覺上可以接受的品質就夠了,打光的計算就是一個例子讀者在閱讀打光的介紹時,可能有時候要先暫時忘掉真實世界中的光線是如何跟環境互動的,現在的硬體雖然已經進步了很多,但是仍然無法完全模擬大自然事實上,就21243D繪圖程式設計使用Direct3D9/10與OpenGL圖4.1:有打光處理(左圖)跟無打光處理(右圖)的差別,右圖看起來像一片圖盤而不像一顆球算是在電影產業的3D繪圖,雖然他們不需要達到互動的繪圖執行效率,在計算打光時也都有經過某種程度的簡化在Direct3D跟OpenGL的傳統FixedFunctionPipeline裡,支援四種不同的光源,分別是方向光DirectionalLight點光源PointLight聚光燈SpotLight環境光AmbientLight方向光DirectionalLight簡單的說,就是只具備方向跟顏色屬性的光源,它常被用來模擬太陽太陽距離很遠,可以把它視為無限遠晴天萬里無雲的時候,在陽光下靠近太陽走一步或是遠離一步,並不會感受到太陽光的方向跟強弱有什麼改變,所以在計算時可以把太陽光的光線減化成只具備方向屬性,忽略距離的因素圖4.2:方向光DirectionalLight點光源PointLight具備位置跟顏色的屬性,它在空間中佔據一個點,並向四面八方散射光線打到一個物體後,所反射的強度會跟物體表面的面向,與光線的入射夾角相3第4章打光125關,這一點和方向光類似不同的地方在於,因為點光源具備位置屬性,所以光線到達每個頂點的方向跟距離都不同,另外它還會隨光源到物體的距離來衰減由於方向光不具備位置屬性,所以無法計算出距離的衰減,它被定義成和距離無關點光源並不存在於自然界中,自然界的光源不可能只會是一個點,它一定會呈某種形狀,而且都佔有體積圖4.3:點光源PointLight聚光燈SpotLight同時具備了方向位置顏色這些屬性,另外還需要指定光柱圓錐的發射角度落在光柱中偏外側的物體,所得到的光線強度會比較弱;完全落在光柱外的物體,則不會接受到光線聚光燈的其它屬性跟點光源相同,光線同樣會跟隨距離來衰減,反射強度同樣會跟隨光線入射夾角來改變圖4.4:聚光燈SpotLight,在此愈深色代表光線強度愈強現實世界裡,光線會在不同的物體表面間反射,這種經由反射所得到的光源,很難把它們歸類成前三種光源的任何一種但是這一類的光源通常也無法把它們忽略,直接忽略的話,打光結果會太暗想像一下在大白天時,就算太陽光沒有直射房間,只要有打開一個窗戶,整個房間仍然會很亮,這就是一個最簡單的例子再舉一個例子,想像晚上的時候,在房間裡把桌燈打開,理論上桌燈可以算是聚光燈,落在光柱外的物體不會41263D繪圖程式設計使用Direct3D9/10與OpenGL被照射到,但事實上整個房間多多少少都會因為桌燈而變亮,因為被桌燈直接照射的物體會反射光線,這些反射的光線會再去照亮其它物體在FixedFunctionPipeline中處理這一類因為反射而得到的光源,最簡單的方法就是再代入一個環境光AmbientLight環境光它沒有位置,也沒有方向,單純提供一個基本的光源強度讓物體沒有直接被三種光源的任何一種光照射到時,還能得到一個最基本的亮度環境光是用來近似經由反射所得到的間接光源,不然的話有些物體可能會整個暗掉看不到這種經由反射所得到的光源,在3D繪圖中被稱為GlobalIllumination或是IndirectIllumination,不是經由反射,直接接受某個光源照射的光,被稱為DirectIllumination使用環境光AmbientLight是解決GlobalIllumination的最簡單方法,理所當然這個簡單方法所得到的結果並不正確直接被DirectionalPointSpotLight照射得到的光,就是DirectIllumination本書把GlobalIllumination翻譯成環境反射光源,把AmbientLight翻譯成環境光一般來說,使用GlobalIllumination這個名詞時,代表會使用比較正確的方法來模擬光源在環境中的反射使用AmbientLight名詞時,代表只是經由設定基本光源強度的方法來做近似被DirectionalPointSpotLight照射到的物體表面,會吸收掉部份光線,也會反射部份光線簡單的來說,白色物體會反射全部的光線,黑色物體則反過來會吸收所有的光線光線被物體表面反射後,到達鏡頭的光線強度就是最終的打光結果物體表面的材質就是用來設定物體反射光線的能力,在此先暫時忽略材質的因素,範例程式chap04/lightingsoftware假設物體會100%反射所有的光線物體表面的反射光,簡單的來說有兩種第一種反射光叫做DiffuseLight,它會均等地對四面八方反射出同樣強度的光線,第二種反射光是SpecularLight,它是物體表面直接反射的光線,反射光線是有方向性的,如果鏡頭位置愈接近反射後的光線路徑,就可以看到愈強的SpecularLight因為SpecualrLight的計算比較複雜一點,在這一節先省略掉SpecularLight的計算AmbientLight也會均等的被物體向四面八方反射FixedFunctionPipeline的打光計算,並不會處理光線被遮蔽而產生的陰影,這一點在Direct3D跟OpenGL中都一樣影子是一項很熱門的研究項目,到目前為止也還沒有出現所謂的最好解決方法,各種做法都有它的優缺點影子的部份留到後面章節5第4章打光127再介紹,這一章範例程式裡所看到的類似陰影效果,純粹都只是因為物體背光或是離光源比較遠而產生的現象,不算是真正的陰影首先來看一個方向光的例子,方向光是最簡單,執行起來最有效率的光源,範例程式chap04/lightingdirectional模擬了方向光照射到一塊矩形上的結果除了計算比較簡單之外,由於每個頂點的光線入射夾角都相同,方向光的打光結果在4個頂點所組成的矩形模型,跟在400個頂點所組成的棋盤格上看起來是相同的圖4.5:正對光線跟偏離光線時的方向光打光結果這個程式的重點在renderdata.cpp裡的CalculateDirectionalLight函式,它會經由向量內積DotProduction來計算頂點面向跟入射光所形成的夾角cos值,這個值再乘上光源強度就是打光的結果CalculateAmbientLight函式並沒有什麼計算可言,直接把頂點顏色初值設定成環境光的強度繪圖的部份很簡單,只是把gQuad陣列的4個頂點傳給GPU來畫出一片矩形主程式會在每次更新畫面前呼叫CalculateAmbientLightCalculateDirectoinalLight來更新頂點的顏色讀者可以在移動滑鼠時同時壓下左鍵來轉動矩形程式碼4.1:chap04/lightingdirectional/renderdata.cpp//光源資料Vector4gvlightambient(0.1f,0.1f,0.1f,0.1f);Vector4gvLightDirection(0.0f,0.0f,1.0f,0.0f);Vector4gvlightcolor(1.0f,1.0f,1.0f,1.0f);//把顏色初值設定成環境光voidCalculateAmbientLight(VertexVCNpVertices,intnumvertices)for(inti=0;iSetFVF(D3DFVFXYZD3DFVFDIFFUSE);//把模型轉換成適合d3d9的格式ConvertToDX9(gQuad,gQuaddx9,4);程式碼4.3:chap04/lightingsoftware/renderopengl.cpp//float4forposition(x,y,z,w)glVertexPointer(4,GLFLOAT,sizeof(VertexVCN),&gQuad[0].mPosition);//float4forcolor(r,g,b,a)glColorPointer(4,GLFLOAT,sizeof(VertexVCN),&gQuad[0].mColor);7第4章打光129程式碼4.4:chap04/lightingsoftware/renderdx10.cppD3D10INPUTELEMENTDESClayout[]=//float4forposition(x,y,z,w)POSITION,0,DXGIFORMATR32G32B32A32FLOAT,0,0,D3D10INPUTPERVERTEXDATA,0,//float4forcolor(r,g,b,a)COLOR,0,DXGIFORMATR32G32B32A32FLOAT,0,16,D3D10INPUTPERVERTEXDATA,0;gpdevice>CreateInputLayout(layout,sizeof(layout)/sizeof(D3D10INPUTELEMENTDESC),pvscode>GetBufferPointer(),pvscode>GetBufferSize(),&gpvertexlayout);OpenGL設定資料格式的API非常直覺,定義好記憶體位址跟每筆資料位移間距就夠了Direct3D10版本看起來比較複雜一點,但事實上做的是跟OpenGL版本相同的動作,差別在Direct3D10是使用相對位置來設定Direct3D9版本使用的是不同格式的模型,每次繪圖前都要呼叫ConvertToDX9來轉換格式,它會把32*4bits的浮點數顏色轉換成8*4bits的整數使用Direct3D9的SetFVF無法控制資料欄位在記憶體的順序,所有欄位的順序都是固定的,只能選擇要用或是不用;後面章節會介紹比較有彈性的設定方法看過方向光後,接下來進入比較複雜的例子,範例程式chap04/lightingsoftware用C++程式碼實作出前面所提到的4種光源計算,環境光AmbientLight其實幾乎沒有什麼計算可言,直接用來設成頂點顏色初值,只有方向光DirectionalLight點光源PointLight聚光燈SpotLight這三種光源需要真正的去計算範例chap04/lightingsoftware用一個棋盤狀的模型來接收光源,棋盤的格子數目可以動態改變,只要移動滑鼠滾輪就可以增加或減少格子數目因為打光的計算是在頂點上做,有比較多的頂點就可以得到比較精確的結果,尤其是對於點光源PointLight跟聚光燈SpotLight棋盤模型的三角形排列方法是使用TriangleStrip,它比TriangleList來的有效率,大幅減少了重複計算的頂點,在這邊先來看這些格子是如何產生的程式碼4.5:chap04/lightingsoftware/renderdata.cpp//產生xgrids*ygrids個格子的棋盤格模型boolGenerateGrids(intxgrids,intygrids,VertexVCNppvertices,int&numvertices,unsignedshortppindices,int&numindices,int&numtriangles)81303D繪圖程式設計使用Direct3D9/10與OpenGLconstinttrianglesperrow=xgrids2;constintindicesperrow=trianglesperrow+2;numvertices=(xgrids+1)(ygrids+1);VertexVCNpVertices=(VertexVCN)GutAllocate16BytesAlignedMemory(sizeof(VertexVCN)numvertices);ppVertices=pVertices;if(pVertices==null)returnfalse;numindices=indicesperrowygrids;unsignedshortpIndices=newunsignedshort[numindices];ppindices=pIndices;if(pIndices==null)GutRelease16BytesAlignedMemory(pVertices);returnfalse;//使用trianglestrip時,三角形數目永遠等於索引值數目減去2numtriangles=numindices2;Vector4vcorner(0.5f,0.5f,0.0f,1.0f);Vector4vstep(1.0f/float(xgrids),1.0f/float(ygrids),0.0f,0.0f);Vector4vPosition=vcorner;Vector4vnormal(0.0f,0.0f,1.0f);Vector4vcolor(1.0f,1.0f,1.0f,1.0f);intx,y;intvertexindex=0;for(y=0;y<=ygrids;y++)vPosition[0]=vcorner[0];for(x=0;x<=xgrids;x++,vertexindex++)pVertices[vertexindex].mPosition=vPosition;pVertices[vertexindex].mNormal=vnormal;pVertices[vertexindex].mColor=vcolor;vPosition[0]+=vstep[0];vPosition[1]+=vstep[1];constintverticesperrow=xgrids+1;boolfromlefttoright=true;intindexindex=0;for(y=0;y0;x)vertexindex=yverticesperrow+x;pIndices[indexindex++]=vertexindex1;pIndices[indexindex++]=vertexindex1+verticesperrow;fromlefttoright=!fromlefttoright;returntrue;使用TriangleStrip的排列方法時,三角形都是相連在一起的,前一個三角形的最後兩個頂點會自動成為下一個三角形的第1跟第2個頂點在實際建立模型的時候,這個規則不太可能會永遠成立,一定會有某些三角形無法連接上這並不代表不能使用TriangleStrip,仍然可以透用建立無效三角形的技巧,強迫把這些看似不合乎規則的三角形連接在一起,術語上它們被稱為DegenerateTriangle,中文不太好翻譯,本書就依照功能性把它稱為無效三角形簡單的說,在IndexBuffer裡,把三角形的其中兩個頂點設定成同一個頂點,三角形會變成一條直線,硬體會自動忽略這種使用兩個相同頂點的三角形在此還有使用一個技巧,用來確保所配置的記憶體空間是落在以16為倍數的位址上,讓IntelSSE指令集執行起來比較有效率讀者可以載入glib/gut.cpp來看GutRelease16BytesAlignedMemory跟GutRelease16BytesAlignedMemory的實作方法,它會多配置幾個bytes的空間,並回傳一個以16bytes為倍數的位址,並把從作業系統配置的指標位址存放在多配置的空間內,在釋放記憶體的時候再去使用它101323D繪圖程式設計使用Direct3D9/10與OpenGL範例程式把C++的new跟delete改寫,所有的new跟delete呼叫都會改用這一組函式來配置記憶體棋盤是個平面,每個頂點的面向都相同,每個頂點的Normal欄位放的都是(0,0,1)這樣是有點浪費空間沒錯,不過在實際上不太容易會遇到每個頂點面向都相同的模型,在這剛好遇到特例程式執行後,讀者可以用滑鼠來轉動棋盤,看看光線在不同角度下的變化按下1會使用方向光,2會使用點光源,3會使用聚光燈,環境光AmbientLight永遠都是開著,不需要去按任何的按鍵轉動滑鼠的滾輪可以增加或減少格子的數目,讀者可以試著改變格子數量來觀察打光結果當物件旋轉超過180度時,會變成是背對鏡頭,所有頂點面向都是背光,在這個時候只剩下環境光有作用通常背對鏡頭的三角形都會被硬體的CULLFACE功能直接被忽略掉,完全不會被畫出來這個範例程式把CULLFACE功能關閉,讓讀者可以看到單純被環境光照射的結果圖4.6:平行光DirectionalLight的效果,物件面向偏離光線方向時,會變比較暗圖4.7:點光源PointLight的效果,靠近光源跟面向光源的頂點會比較亮11第4章打光133圖4.8:聚光燈SpotLight的效果,這個圖是使用30x30個格子畫出來的,格子數目如果不夠多,繪圖品質會很差chap04/lightingsoftware/main.cpp的主程式跟前面的範例程式有一些不同,它除了會設定光源的屬性,還會呼叫打光函式來計算光線程式碼4.6:chap04/lightingsoftware/main.cpp//設定光源資料gvlightambient.Set(0.1f,0.1f,0.1f,0.1f);gvLightDirection.Set(0.0f,0.0f,1.0f);gvLightPosition.Set(0.0f,0.0f,0.5f);gvlightcolor.Set(1.0f,1.0f,1.0f,1.0f);gvlightattenuation.Set(1.0f,1.0f,0.0f);gfSpotLightCutoff=30.0f;gfSpotLightExponent=30.0f;//主迴圈while(GutProcessMessage())GetUserInput();//把每個頂點的顏色先設定成gvlightambient的值CalculateAmbientLight(gpgridvertices,ginumgridvertices);//再加上所選擇的光源switch(giLightSource)caseLIGHTDIRECTIONAL:CalculateDirectionalLight(gpgridvertices,ginumgridvertices);break;caseLIGHTPOINT:CalculatePointLight(gpgridvertices,ginumgridvertices);break;caseLIGHTSPOT:CalculateSpotLight(gpgridvertices,ginumgridvertices);break;render();121343D繪圖程式設計使用Direct3D9/10與OpenGLCalculateAmbientLight函式會把所有的頂點顏色初值都設定成環境光AmbientLight的值,接下來再呼叫計算其它光源的函式時,會把所得到的打光結果再累加上去這是一個相當重要而且很簡單的觀念,光源強度是可以累加的可以先計算第1個光源的結果,再把第2個第3個...第n個光源所貢獻的強度累加上去程式碼4.7:chap04/lightingsoftware/main.cpp//把顏色初值設定成環境光voidCalculateAmbientLight(VertexVCNpVertices,intnumvertices)for(inti=0;i=fSpotLightCutoffCos)//頂點跟光線的交角小於fspotightcutoffcos時,才落在光柱範圍內.Vector4vdistance(1.0f,lightdistance,lightdistancelightdistance);//gvlightattenuation裡記錄了計算衰減公式1/(a+b*d+c*d*d)裡的(a,b,c)//Vector3Dot(vDistance,g\vLightAttenuation)=(a+bd+cdd)Vector4vattenuation=Vector3Dot(vdistance,gvLightAttenuation);//比較靠近光柱外圍部分的頂點,光線會衰減.floatfFalloff=pow(fcosine,gfspotlightexponent);Vector4vIntensity=Vector3Dot(vnormal,vVertextoLight);pVertices[i].mColor+=fFalloffvIntensitygvLightColor/vattenuation;pVertices[i].mColor.Clampto1();程式碼大致上是按照FixedFunctionPipeline的打光公式來實作的,有幾個小地方不同固定流程中有定義物體表面的材質反光能力Material,在這直接把它假設成143D繪圖程式設計136使用Direct3D9/10與OpenGL(1,1,1,1)的全反射,所以只要去處理光源的強度就行了另外在這邊還沒有帶入鏡頭位置,所有的打光效果都沒有跟鏡頭位置扯上關係這個範例程式只計算了跟鏡頭位置無關的兩種打光結果,AmbientLight以及DiffuseLight,SpecularLight晚一點再來介紹早期做3D繪圖時,有的時候為了效能考量,會忽略掉SpecularLight的計算在現實世界中,確實是有很多有物件不會反射出SpecularLight,例如毛衣,地毯等等金屬類的物品具備比較強的Specular反射能力,例如汽車刀劍等等4.2Direct3DOpenGL的打光Direct3D跟OpenGL可以自動處理chap04/lightingsoftware裡面所看到的打光計算如果顯示卡硬體有支援HardwareTransform&Lighting,打光會交由GPU來計算如果硬體不支援的話,那Direct3DOpenGL會使用CPU來執行類似上一節所看到打光計算,計算好頂點顏色,再交給GPU去顯示範例程式chap04/lightingdiffuse同樣使用三種不同光源打在棋盤格上,不過在此允許三盞燈光同時照射讀者按下鍵盤上的數字鍵1可以控制方向光的開關,按下數字鍵2可以打開或關閉點光源,數字鍵3則控制聚光燈程式執行的結果跟前一個範例程式類似,在此把不同種類的光線被設定成不同的顏色,這樣比較容易區分下面列出幾個使用不同格子數目棋盤格的打光結果,讀者可以發現打光的品質會隨著格子數目的減少而降低圖4.9:點光源在(由左到右)30x3010x103x3個格子上的打光結果使用Shader把打光計算由頂點移到像素中來計算,可以解決面數不夠所造成的打光問題,不管使用多少格子,打光品質看起來都不會太差,最後一個小節會示範使用15第4章打光137圖4.10:聚光燈的打光效果,由左到右分別使用15x157x72x2個格子Shader實作打光的方法範例程式chap04/lightingduffuse的重點在於設定光源的方法,先來看看Direct3D9要如何設定光源程式碼4.8:chap04/lightingdiffuse/renderdx9.cppvoidSetupLightingDX9(void)//取得Direct3D9裝置LPDIRECT3DDEVICE9device=GutGetGraphicsDeviceDX9();//開啟打光功能device>SetRenderState(D3DRSLIGHTING,TRUE);//設定環境光device>SetRenderState(D3DRSAMBIENT,ConvertToD3DCOLOR(gvglobalAmbientLight));//指定Diffuse材質的資料來源,把它設為從SetMaterial函式中來設定.device>SetRenderState(D3DRSDIFFUSEMATERIALSOURCE,D3DMCSMATERIAL);//設定物件材質的反光能力D3DMATERIAL9mtrl;ZeroMemory(&mtrl,sizeof(mtrl));mtrl.Ambient=(D3DCOLORVALUE)&gvMaterialAmbient;mtrl.Diffuse=(D3DCOLORVALUE)&gvMaterialDiffuse;mtrl.Specular=(D3DCOLORVALUE)&gvMaterialSpecular;mtrl.Emissive=(D3DCOLORVALUE)&gvMaterialEmissive;//經由呼叫SetMaterial來設定材質device>SetMaterial(&mtrl);//設定光源for(inti=0;iLightEnable(i,TRUE);//D3D9經由設定D3DLIGHT9struct來設定光源屬性D3DLIGHT9light;161383D繪圖程式設計使用Direct3D9/10與OpenGLZeroMemory(&light,sizeof(light));switch(gLights[i].metype)caseLIGHTDIRECTIONAL://設定成方向光light.Type=D3DLIGHTDIRECTIONAL;//設定方向light.Direction=(D3DVECTOR)&gLights[i].mvdirection;break;caseLIGHTPOINT://設定成點光源light.Type=D3DLIGHTPOINT;//設定位置light.Position=(D3DVECTOR)&gLights[i].mvposition;//隨距離的衰減值//1/(CONSTANT+LINEARd+quadraticdˆ2)//公式中的CONSTANT,LINEAR,QUADRATIC值light.Attenuation0=gLights[i].mvattenuation[0];light.Attenuation1=gLights[i].mvattenuation[1];light.Attenuation2=gLights[i].mvattenuation[2];break;caseLIGHTSPOT://設定成聚光燈light.Type=D3DLIGHTSPOT;//設定位置light.Position=(D3DVECTOR)&gLights[i].mvposition;//設定方向light.Direction=(D3DVECTOR)&gLights[i].mvdirection;//隨距離的衰減值//1/(CONSTANT+LINEARd+quadraticdˆ2)//公式中的CONSTANT,LINEAR,QUADRATIC值light.Attenuation0=gLights[i].mvattenuation[0];light.Attenuation1=gLights[i].mvattenuation[1];light.Attenuation2=gLights[i].mvattenuation[2];//光柱圓錐的一半角度light.Phi=FastMath::DegreeToRadian(gLights[i].mfSpotlightCutoff);//InnerCone的角度,InnerCone內部沒有角度衰滅.light.Theta=FastMath::DegreeToRadian(gLights[i].mfspotlightinnercone);//光柱的角度衰滅值light.Falloff=gLights[i].mfspotlightexponent;break;//光源的Ambient值light.Ambient=(D3DCOLORVALUE)&gLights[i].mvambientcolor;//光源的Diffuse值light.Diffuse=(D3DCOLORVALUE)&gLights[i].mvdiffusecolor;//光源有效範圍,在此把它設定成浮點數所容計的最大值.light.Range=f;//用SetLight來設定光源屬性17第4章打光139device>SetLight(i,&light);else//關閉這盞光device>LightEnable(i,FALSE);D3DCOLORVALUE型態也是4個浮點數所組成的向量,剛好分別代表RGBA,跟Vector4型態的資料符合,所以可以直接把Vector4轉型成D3DCOLORVALUE有一個地方無法直接轉型的是在設定基本環境光時,由於SetRenderState只能傳入整數型態的ARGB顏色值,要先呼叫ConvertToD3DCOLOR來做轉換//把float*4的顏色轉換成Direct3D的8*4bits整數型態D3DCOLORConvertToD3DCOLOR(Vector4&vcolor)Vector4vcolor=vcolor;vcolorSaturate();//局限在0-1範圍內vcolor=f;//再轉換到的範圍intr=(int)vcolorGetX();intg=(int)vcolorGetY();intb=(int)vcolorGetZ();inta=(int)vcolorGetW();D3DCOLORd3dcolor=D3DCOLORARGB(a,r,g,b);returnd3dcolor;voidSetupLightingDX9(void)device>SetRenderState(D3DRSAMBIENT,gvglobalAmbientLight));ConvertToD3DCOLOR(物體表面材質的Diffuse反光能力,可以有兩種不同的資料來源,第一種方法是使用SetMaterial函式來設定,這個方法會讓整個模型都具備相同的反光能力另一種方法是把資料放在頂點的顏色欄位中,這樣子可以對每個頂點設定不同的反光能力在此使用第一種方法,下面的程式碼就是在設定材質資料來源的選擇//指定Diffuse材質的資料來源,把它設為從SetMaterial函式中來設定.device>SetRenderState(D3DRSDIFFUSEMATERIALSOURCE,D3DMCSMATERIAL);181403D繪圖程式設計使用Direct3D9/10與OpenGLDirect3D習慣把一組資料先放在一個結構struct中,再呼叫Direct3D函式來設定一組資料材質的設定也不例外,D3DMATERIAL9結構可以存放材質的設定值,再呼叫SetMaterial來套用材質的AmbientDiffuseSpecularEmissive等等的屬性在打光計算公式中,材質屬性會跟光源強度相乘,得到的值才是物體所會反射的光線強度舉個例子,如果光線是白色光(1,1,1,1),材質被設定成只反射紅光(1,0,0,1),物體最後看起來會是紅色的,因為(1,1,1,1)*(1,0,0,1)=(1,0,0,1)跟顏色無關的Alpha值,通常會把它設定成1,下一章會介紹Alpha的使用Emissive這個欄位是第一次出現,它是用來給本身就會發光的物體使用,Emissive值也可以想把它視為是物件做打光計算的初值,所有的光線都會以這個初值開始累加它跟環境光屬性不同的地方在於,它不跟任何光源互動,不代表反射能力,它代表物體本身所散發出的光在此把它設成(0,0,0,0),大部份的材質Emissive屬性會被設定0請注意,對一個物體設定Emissive屬性,只會讓它看起來比較亮,並不會真的把這個物體變成光源,再去照亮其它物件Direct3D使用開關來控制光源,開關還被分成總開關,以及個別光源的獨自開關只要總開關是關閉的,所有光源都會被關掉總開關要先打開,各個光源的開關才會生效下面的程式碼可以用來操控這些開關//開啟打光功能,也就是總開關.device>SetRenderState(D3DRSLIGHTING,TRUE);//打開第N號光源device>LightEnable(N,TRUE);一般來說,Direct3D最多可以同時開啟8盞光源讀者可以試著去執行DirectXSDK工具裡附的DirectXCapsViewer,到D3DDeviceTypes/HAL/Caps檢查Max-ActiveLights,這個數值就是同時可以使用的光源數量上限光源並沒有規定要從第0號開始使用,它的編號只是個代碼,沒有什麼順序可言只需要一盞光源時,可以隨便選取0到7號任何一盞光來使用,當然習慣上還是會從第0號開始使用開啟愈多盞光源,理所當然的會需要花更多時間來處理打光計算,就算是硬體有支援HardwareLighting也是一樣除了光源數量外,光源種類跟它所需要花費的計算時間也有關係方向光的計算永遠比其它兩種光源省時間,因為它只需要計算光線跟頂點面向所形成的角度Direct3D的光源是靠D3DLIGHT9結構來設定,填好D3DLIGHT9結構中的每個欄位資料後,再呼叫SetLight把光源傳給Direct3D使用19第4章打光141typedefstructD3DLIGHT9D3DLIGHTTYPEType;//光源的種類,選擇為下面三種其中之一D3DLIGHTPOINT//D3DLIGHTSPOT,D3DLIGHTDIRECTIONALD3DCOLORVALUEDiffuse;//Diffuse的強度D3DCOLORVALUESpecular;//Specular的強度D3DCOLORVALUEAmbient;//Ambient的強度D3DVECTORPosition;//光源位置D3DVECTORDirection;//光源方向floatRange;//光源有效範圍floatFalloff;//控制SpotLight的角度衰減floatAttenuation0;//距離衰減參數之1floatAttenuation1;//距離衰減參數之2floatAttenuation2;//距離衰減參數之3floatTheta;//SpotLight中不會因角度而衰減的範圍floatPhi;//SpotLight的光柱角度D3DLIGHT9,LPD3DLIGHT;這個結構的內容大部份都很直覺,只有幾個欄位需要特別做講解距離超過Range長度值的頂點,不會被這盞燈打到Attenuation0Attenuation1Attenuation2這三個值會被代到公式1/(Attenuation0+Attenuation1distance+Attenuation2distance2)中來計算,其中distance為頂點到光源的距離值這個式子的計算結果會得到光線隨距離的衰減值FalloffThetaPhi都和Spotlight的圓錐角度有關,Phi控制Spotlight的圖錐角度,Theta要小於Phi,用來指定光柱內的某個角度範圍內光線還不會隨光線角度而衰減Falloff用來控制光線隨角度的衰減速度圖4.11:Direct3D9的spotlight設定
Similardocuments
CC213
:(Ken-YiLee),E-mail:[email protected][P.51]C/C++[P.52][P.53][P.55](int)[P.57](float/double)[P.58]printfscanf[P.59][P.61](/)[P.62](char)[P.65]:+-*/%[P.67]:=[P.68]:,
Moreinformation
AutodeskProductDesignSuiteStandard系統統需求典型使用用者和工作流程AutodeskProductDesignSuiteStandard版本為為負責建立非凡凡產品的設計師師和工程師,提供基本概念設計計和製圖工具,以取得令人驚驚嘆
AutodeskProductDesignSuiteStandard20122系統統需求典型使用用者和工作流程AutodeskProductDesignSuiteStandard版本為為負責建立非凡凡產品的設計師師和工程師,提供基本概念設計計和製圖工具,以取得令人驚驚嘆的產品設計計AutodeskProductDesignSuiteStandard版本中中包括以下軟體體產品
Moreinformation
untitled
OgreRenderingSystemhttp://antsam.blogone.netAntsamCGD@hotmail.comgeometrysystemmaterialsystemshadersystemrenderingsystemAPIAPIDirectXOpenGLAPIPipelineAbstractionAPIPipelinePipelineconfigurationpipeline
Moreinformation
現在人類獲取地球內部訊息的方法,是從可能影響我們身家性命安全的地震,用數學模型把地震資料轉換成地震波速度,進而獲得地底物質密度與深度的關係地下世界知多少km/sg/cm3PGpakmSPS3,0003,000akK透視地底PercyBridgma
透視地球深處的窗戶?extremeconditionextremeenvironment94.51270213.912.36,4003004,0001864JulesGabrielVerne195920081990PaulPreuss20032420132482現在人類獲取地球內部訊息的方法,是從可能影響我們身家性命安全的地震,用數學模型把地震資料轉換成地震波速度,
Moreinformation
840提示Excel-Excel--Excel(=)Excelch0.xlsxH5=D5+E5+F5+G5(=)=-Excel00
Excel--Excel--4-5840提示Excel-Excel--Excel(=)Excelch0.xlsxH5=D5+E5+F5+G5(=)=-Excel00(0)智慧標籤相關說明提示-5--Excel45678+-*/%^=<>=&90(:)(,)()Chapter-:,
Moreinformation
10-2SCJPSCJD10.1昇陽認證Java系統開發工程師的認證程序JavaITSCJD
10SCJD簡介Java10-2SCJPSCJD10.1昇陽認證Java系統開發工程師的認證程序JavaITSCJD10SCJD10-3JavaJavaSCJD7SwingRMI10.1.1TheAssignmentTheEssay91010-4SCJPSCJD9010.1.2SCJPJava90120Swing10
Moreinformation
17PrelightApplyColorPaintVertexColorToolPrelightApplyColorPaintVertexColorTool242ApplyColor,PrelightMayaShadingSmooth
17Prelight233234242ApplyColorPaintVertexColorToolPrelightApplyColorPaintVertexColorTool242ApplyColor,PrelightMayaShadingSmoothShadeAllCustomPolygonDisplayOptionsColorinShaded
Moreinformation
MicrosoftWord-ACLchapter02-5ed.docx
第2章神奇的質數2.1.1什麼是質數111打下好基礎-程式設計必修的數學思維與邏輯訓練110102357468910410000122910001682357111317192329313741434753596167717379838997101103107109113127131
Moreinformation
09F9128peertopeer,P2Pfiletransferprotocolbittorrent10P2PP2PGNU/LinuxP2PCC單機版的智慧財產權vs.人權戰爭1980DVDcontent
當智慧財產侵犯人權?智慧財產與人權KickstarterTheMatrixTheMatrixAvatarEywa122013448409F9128peertopeer,P2Pfiletransferprotocolbittorrent10P2PP2PGNU/LinuxP2PCC單機版的智慧財產權vs.人權戰爭1980DVDcontent
Moreinformation
PythonapplebearcFruitAnimalapplebearc2-2
Chapter02變數與運算式2.12.1.12.1.22.1.32.1.42.22.2.12.2.22.2.3type2.2.42.32.3.1print2.3.2input2.42.4.12.4.22.4.32.4.42.4.5+2.4.6PythonPython2.12.1.1applebearc65438790
Moreinformation
主程式:publicclassMain3ActivityextendsAppCompatActivity{ListViewlistview;//先整理資料來源,listitem.xml需要傳入三種資料:圖片狗狗名字狗狗生日//狗狗圖片int[]pic=new
ListView自訂排版主程式:publicclassMain3ActivityextendsAppCompatActivity{ListViewlistview;//先整理資料來源,listitem.xml需要傳入三種資料:圖片狗狗名字狗狗生日//狗狗圖片int[]pic=newint[]{r.drawable.dog1,R.drawable.dog2,
Moreinformation
MicrosoftPowerPoint-VB14.ppt
VB列表盒LISTBOX應用資科系林偉川執行畫面121重要屬性LISTBOX物件(VB6)新增至LISTBOX物件中ADDITEM自LISTBOX物件中刪除選取物件REMOVEITEM自LISTBOX物件中取出選取物件ListIndex顯示LISTBOX物件中紀錄個數Listcount3LISTBOX物件(VB.NET)重要屬性新增至
Moreinformation
MicrosoftWord-ACIchapter00-1ed.docx
前言ExcelExcel-v-財務管理與投資分析-Excel建模活用範例集5相關平衡敏感-vi-前言模擬If-Then規劃ERPBI-vii-財務管理與投資分析-Excel建模活用範例集ERP+BI+ERPBIExcel88Excel1.ExcelExcel2.Excel3.Excel-viii-前言1.
Moreinformation
幻灯片1
次世代手游的探讨SpeakerKevinBYArtDirector&idreamsky第一部分次世代手游的探索和制作1.Shader2.Mesh3.Animation4.Lightmap1.Shader1.1NormalMap(法线贴图)1.2SpecularMapping(高光贴图)1.3CubeMap(
Moreinformation
二次曲線人們對於曲線的使用及欣賞比曲線被視為一種數學題材來探討要早得多各種曲線中在日常生活常接觸的當然比較容易引起人們的興趣比如投擲籃球的路徑是拋物線盤子的形狀有圓形或橢圓形雙曲線是較不常見的然而根據科學家的研究彗星的運行軌道是雙曲線的一部分我們將拋物線圓與橢圓雙曲
-1圓方程式第章二次曲線38二次曲線人們對於曲線的使用及欣賞比曲線被視為一種數學題材來探討要早得多各種曲線中在日常生活常接觸的當然比較容易引起人們的興趣比如投擲籃球的路徑是拋物線盤子的形狀有圓形或橢圓形雙曲線是較不常見的然而根據科學家的研究彗星的運行軌道是雙曲線的一部分我們將拋物線圓與橢圓雙曲線合稱為圓錐曲線因為在平面坐標系中其對應的方程式均為二元二次式
Moreinformation
2part01浴室浴室收納原則要在浴室用的東西一定要收在浴室從內容物只剩一點的洗滌劑容器開始整理減少相同物品的數量多的物品只要1~2個就夠了每天要用的東西別放在浴室櫃子裡
101KANGSI10100911.HomeEconomics.康熹家政報報101KANGSI第三期24830(02)2299-9006(02)2299-9110好書推薦一天一點無壓力收納:600萬網友推薦的實用整理聖經本書簡介6001572part01浴室浴室收納原則要在浴室用的東西一定要收在浴室從內容物只剩一點的洗滌劑容器開始整理減少相同物品的數量
Moreinformation
SpyderAnacondaSpyderPythonSpyderPythonSpyderSpyderSpyder開始\所有程式\Anaconda3(64-bit)\SpyderSpyderIPythonPythonIPythonSp
011.6SpyderAnacondaSpyderPythonSpyderPythonSpyderSpyder1.6.1Spyder開始\所有程式\Anaconda3(64-bit)\SpyderSpyderIPythonPythonIPythonSpyderPythonFile
Moreinformation
untitled
1234562005302836291933658112.3124567858230301015832123123455846781910111213141516171819201(1)21222324252658527282930313233
Moreinformation
1:publicclassMyOutputStreamimplementsAutoCloseable{3:publicvoidclose()throwsIOException{4:thrownewIOException();5:}6:
Chapter15.SuppressedExceptionCH14FinallyBlockJavaSE7try-with-resourcesJVMcleanuptry-with-resourcesJVMcleanupcleanupJavaSE7ThrowablegetsuppressedThrowable[]getsuppressed()Suppressed
Moreinformation
投影片1
資料庫管理程式(補充教材-Part2)使用ADO.NET連結資料庫(自行撰寫程式碼以實現新增刪除修改等功能)PrivateSubInsertButton_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesInsertButton.Click'宣告相關的Connection
Moreinformation
00=10=01==11=00=1
00=10=01=011=11=00=1:={0,1}:3(,,)=+(,,)=++(,)=+(,,,)=(+)(+)+(+)(+)+=+==++=+=(+)+=+(+)()=()(+)=++=(+)(+)+==+0
Moreinformation
ThegoldenpinsofthePCIcardcanbeoxidizedaftermonthsoryears
Q.如何在LabWindows/CVI編譯DAQCard程式?A:請參考至下列步驟:步驟1:安裝驅動程式1.安裝UniDAQ驅動程式UniDAQ驅動程式下載位置:CD:\NAPDOS\PCI\UniDAQ\DLL\Driver\ftp://ftp.icpdas.com/pub/cd/iocard/pci/napdos/pci/unidaq/dll/driver/
Moreinformation
AutoCAD用戶如何使用ArchiCAD
AutoCAD用戶如何使用ArchiCADAutoCAD用戶如何使用ArchiCAD(中文版)由ScottMacKenzie,SimonGilbert,GeoffreyMooreLangdon,DavidByrnes,RalphGrabowski編寫龍庭資訊有限公司1/73-2.3.4.-
Moreinformation
3-1Wii()
033-13-23-33-43-53-1Wii()3-23-3883-43-53-43-33-23-58(sincos)3-43-53-2CH03_key4.flaActionScript312"block_mc"++"_"+8block_mc2_3x_numy_num10102030405060708
Moreinformation
CC213
:(Ken-YiLee),E-mail:[email protected][P.11]:DevC++[P.12]:http://c.feis.tw[P.13][P.14][P.15][P.17][P.23]DevC++[P.24][P.27][P.34]C/C++[P.35]10C/C++CC++CC++C++C()C++
Moreinformation
FY.DOC
高职高专21世纪规划教材C++程序设计邓振杰主编贾振华孟庆敏副主编人民邮电出版社内容提要本书系统地介绍C++语言的基本概念基本语法和编程方法,深入浅出地讲述C++语言面向对象的重要特征:类和对象抽象封装继承等主
Moreinformation
CU0594.pdf
8SOHO13003SOHOSOHOCoderProgrammerHTMLCSSPHPJavaScrip009LECTURE1-11048PART2LECTURE1-11049SOHOLandingPageLanding050PART2LECTURE1-11SEOSEOP.093SEOSEOSEOSEOSEO051
Moreinformation
46201111467數位遊戲式學習系統7201111467473DBGameSys48201111467正規化資料模組如何配置並儲存電子化資料以便減少資料被重覆儲存的程序DBGameSys的主要功能模組包學習者審核評分模組含正規化資料模組審核評分模組高分列表模組3大區塊系統資料庫在正規化資料模組的執行高分列表模組過程中先要求學習者瀏覽遊戲
Moreinformation
投影片1
計算機程式及實習期末報告題目:六宿炒翻天班級:奈米一乙姓名:陳洋翼學號:4A514050老師:謝慶存程式說明設計結帳系統,選擇數量後,在按下計算,將會顯示總金額若是老人或小孩,將可享8折或9折的優惠程式畫面填選數量在火腿蛋炒飯的數量選擇1,並按下計算,可得總金額50元程式畫面打折填選完後,若客人是小孩或老人,選擇欲打折項目,
Moreinformation
C1
Chomepage:xpzhangme2018530C1Cmin(x,y)doubleC//minc#include#includedoublemin(doublex,doubley);intmain(intargc,char*argv[]){doublex,y;if(argc!=
Moreinformation
Chapter3CameraRawStepnegativeclarity+25]P/Step40(下一頁)CameraRawChapter3089
PhotoshopCCCameraRawPhotoshopCameraRawStep13123SCOTTKELBYStep2BCameraRaw088Chapter3CameraRawChapter3CameraRawStep3-4-100negativeclarity+25]P/-75-50Step40(下一頁
Moreinformation
入指令如:鍵盤鼠標多點觸控重力感應陀螺儀等4.圖形用戶接口掌握引擎API中GUI與GUILayout類中方法和變量的使用,能夠通過GUISkin為應用的界面定制不同風格主
Unity專業能力認證(UnityCertifiedProfessional)應考須知壹閱讀大綱主題一:數字媒體基礎知識1.2D圖形知識熟悉常用位圖數據的結構和格式其中包括像素數據顏色的值與通道的概念2.3D圖形學相關知識a)理解向量的
Moreinformation
理性真的普遍嗎注意力的爭奪戰科學發展2012年12月,480期13
12科學發展2012年12月,480期你可能不知道的媒體影響劉正山若用選戰的角度來看選舉和參與選舉,你大腦裡情感的作用一定大過理性的作用,便會很習慣地拿各種媒體或別人的觀點來使自己的選擇合理化2012理性真的普遍嗎注意力的爭奪戰科學發展2012年12月,480期1314科學發展2012年12月,480期agendasetting報紙和網路新聞的頭版空間有限,
Moreinformation
RMFShape/外觀:TubularPhotoFiberPhotoAreaUltrasonicsModel/型號RMF-DU10RMF-DU40RMF-DU10KRMF-DU40KRMF-DU10K1RMF-DU40K1Diffusereflect
Shape/外觀:TubularPhotoRMFModel/型號RMF-10KP2RMF-10KP2KRMF-DU30KP2RMF-DU30KP2KThroughbeam/對照式Diffusereflection/擴散反射式10M30cmInfraredLED850nmInfraredLED875nm45maMax./Eachside
Moreinformation
任務二:產生20個有炸彈的磚塊,放在隨機的位置編輯Block類別的程式碼importgreenfoot.;//(World,Actor,GreenfootImage,GreenfootandMouseInfo)Writeadescriptionofclass
踩地雷遊戲高慧君南港高中開啟專案MineSweep任務一:產生30X20個磚塊編輯Table類別的程式碼importgreenfoot.;//(World,Actor,GreenfootImage,GreenfootandMouseInfo)importjava.util.arraylist;WriteadescriptionofclassMyWorld
Moreinformation
新版明解C++入門編
511!...43,85!=...42"...118""...337""...8,290#...71#...413#define...128,236,413#endif...412#ifndef...412#if...412#include...6,337#undef...413%...23,27%=...97&...243,
Moreinformation
11.色溫感:12.光比:多樣的自然光面貌1F21/30sISO800M/7
PART07132134136138140142144146148150PART08152154156158160162166VI/Contents11.色溫感:12.光比:多樣的自然光面貌1F21/30sISO800M/73.側面光:3:009:004.側逆光:1:3010:305.逆光:12
Moreinformation
投影片1
數位相片基礎編修Photoshop,,,,2,,3/43-1,...,,Photoshop,,,556,,...,5,,,73-2,...,,,8,Photoshop,,,/910,,,,,,03-02.jpg,,,,,Photoshop"",Photoshop1112//,Photoshop,1314,,,""""6
Moreinformation
MicrosoftWord-_m30.doc
12345678公式2421能整除因此後玩者贏且關鍵數字為3的倍數3031不能整除所以先拿餘數2關鍵數字是4的倍數2先玩者贏4041能整除因此後玩者贏且關鍵數字為5的倍數5051不能整除所以先拿餘數2關鍵數字是6的倍數2先玩者贏7061能整除因此後玩者贏且關鍵數字為7
Moreinformation
C/C++语言-C/C++数据
C/C++C/C++Tableofcontents1.2.3.4.char5.1C=5(F32).9FC21//fal2cel.c:ConvertFahtemperaturetoCeltemperature2#include3intmain(void)4{5floatfah,cel;
Moreinformation
2(Diffraction)400nm700nmYoung
990026Physics24830(02)2299-9006(02)2299-91109942000Wave2(Diffraction)400nm700nmYoung20088163mm4LED5注意:噴灑過硫酸銅水溶液的酒精燈一定要清洗乾淨,否則沒有燃燒到的銅離子附著在酒精燈外,必定會使酒精燈的金屬外殼逐漸氧化LED678CQ提示
Moreinformation
14:6不做清單上的事,並不代表我們就可以隨心所欲;我們不做,是為了更深一層的原因同樣,也沒有人會因不受這些清單的捆綁,就更能活出豐盛的生命來14:158::17在所有十誡中,第十誡往往是最先遭破壞的一條22:37,39凡是使我們不能愛神與愛
HowShouldWeThenLive,1976FrancisSchaeffer,1912-1984L'AbriFellowship200N.MainStreet,Milltown,NJ08850,U.S.ATel:732-828-4545Fax:732-745-2878E-mail:[email protected]:(02)2673-3600
Moreinformation
運算子多載OperatorOverloading
函數樣板(FunctionTemplate)與類別樣板(ClassTemplate)講師:洪安1資料結構與C++程式設計進階班為何需要通用函數?(1/2)intabs(intx){return(x>0)?x:-x;取名困難不好記floatfabs(floatx){return(x>0)?x:-x;complexcabs(complexx)
Moreinformation
int*pinta0x00C70x00C70x00CintI[2],*pi=&I[0];pi++;charC[2],*pc=&C[0];pc++;floatF[2],*pf=&F[0];pf++;
Memory&[email protected]*pinta0x00C70x00C70x00C72.1.22intI[2],*pi=&I[0];pi++;charC[2],*pc=&C[0];pc++;floatF[2],*pf=&F[0];pf++;2.1.31.2.3.3intA,
Moreinformation
堅實的城牆搜尋攻擊目標
借助外力滅菌19311362151514反求諸己滅菌196堅實的城牆搜尋攻擊目標215151437細胞膜變薄了AQn=h2/D;h=,1,2,135X.5.2XXX開始打洞382151514PtPDwInverseFourierTransformz=hFhQhXCosQhXzxzDDw/2
Moreinformation
摘要本校多媒體設計系與上海戲劇學院創意學院在多次聯繫交流之下,已簽署合作備忘錄,積極尋求兩校合作教學與共同創作之機會藉由本系學生作品腦殘公寓入圍第五屆中
出國報告(出國類別:其他-國際競賽)中國獨立遊戲節國際學生競賽及上海戲劇學院合作洽談服務機關:國立臺中科技大學多媒體設計系姓名職稱:金啟平專案講師派赴國家:中國出國期間:102.9.14102.9.17報告日期:102.11.20
Moreinformation
MicrosoftWord-ACLchapter00a-1ed.doc
序三A*Wi-FiRLERSA-v-前言NPCHornersruleDOSPCXRLERSA--vii-演算法的樂趣0-16023132O(n)O(n2)O(n)O(n)MP3-viii-前言http://books.gotop.com.tw/download/acl045600http://blog.csdn.net/orbit/
Moreinformation
untitled
1Outline數料數數列亂數練數數數來數數來數料利料來數A-Za-z_()不數0-9數不數SCHOOLSchoolschool數讀school_nameschoolname易不C#myname7_elevenB&QnewC#(1)publicprotectedprivateparamsoverride
Moreinformation
EA3.pdf
282934淡江建築系精品商務旅館35relationbetweenrocker,platformandpedestrianRockMusicHotelAroundDifferentKindsofMusicActivities設計者曾琬茹學期2012春概念不同種類的音樂活動分布在旅館各個角落透過剖面配置讓不同種活動串連在同一個空間旅客
Moreinformation
ACIpdf
099.1-...9-29.1.1...9-29.1.2...9-39.2-...9-49.2.1PMT-()...9-49.2.2...9-69.3-...9-89.3.1PMT-()...9-89.4...9-109.4.1...9-119.4.2...9-129.4.3...9-149.5-...9-179.5.1...9-181Excel...9-21
Moreinformation
概述
OPCVersion1.6build0910KOSRDKKnightOPCServerRapidDevelopmentToolkitsKnightWorkgroup,eehooTechnology2002-9OPC1...42API...52.1...52.2...52.2.1KOS_Init...52.2.2KOS_InitB...52.2.3
Moreinformation
MicrosoftPowerPoint-ds-1.ppt[兼容模式]
http://jwc..edu.cn/jxgl/HomePage/Default.asp2说明总学时:72(学时)=56(课时)+16(实验)行课时间:第1~14周周学时:平均每周4学时上机安排待定考试时间:课程束第81112章的内容为自学内容;目录中标有
Moreinformation
投影片1
軟體說明書繁體中文RGBA目錄-CONTENTS0109151722軟體主介面巨集設定說明主介面概觀個人設定檔(Profiles)一般模式/遊戲模式按鍵功能分配巨集管理器概觀巨集管理器巨集錄製設定巨集錄製時間列表插入指令閃移系統-I.S.S(InstantShiftSystem)燈光設定更新韌體閃移系統啟動鈕設定說明燈光設定介面介面區域一
Moreinformation
資料結構之C語言重點複習
鏈結串列自編教材(一)本教材(一)目標問題:每次以亂數產生一[0,1000]之整數值,若該值>100,則以同方式繼續產生下一亂數值,若該值
Moreinformation
1
磁軌式讀卡機1288系列使用手冊Version1.01234567891011121288MSRMicrocontroller:WithDecoderOpenVisualCOMporttoreaddata(UARTInterface)From1288Ordirectcontrol1288bysendingCommand
Moreinformation
620128476你猜得到它是什麼嗎它就是高分子!生活中的高分子有種物質的重要性不亞於我們所呼吸的空氣,不管身在何處,都有它的存在,它甚至就隱藏在人體裡面!人類若失去了它,就得回到遠古時代,甚至可能終止生命高分子是什麼高分子是由千個甚至萬個以上的原子所組成,呈現柔軟的特性日常生活中使用的塑膠袋就是由高分子製造的,人體組成中的DNA也是一種高分子20128476
Moreinformation
陰影處理WhydoestheimageofarealspherelooklikeLight-materialinteractionscauseeachpointtohaveadifferentcolororshadeNeedtoconsider-
LightingandShadingChapter6:打光與陰影1WhyweneedshadingSupposewebuildamodelofasphereusingmanypolygonsandcoloritwithglcolor.WegetsomethinglikeButwewant21陰影處理Whydoestheimage
Moreinformation
CO2以鄰為壑的台灣建築產業
620114460台灣綠建築政策的成就台灣的建築產業消耗了大量的水泥,也排放了很多的營建廢棄物,建築物的壽命卻嚴重偏低建築的環保時代已來臨1992199212UnitedNationsCommissiononSustainableDevelopment,UNCSD19981996CO2以鄰為壑的台灣建築產業27.2234162011446078201144604
Moreinformation
MicrosoftWord-VRP物理引擎应用.doc
物理引擎介绍什么是物理引擎物理引擎和3D图形引擎是两个截然不同的引擎,但是它们两者又有着密不可分的联系,一起创造了虚拟现实的世界在虚拟现实世界中,人们的需求已经从观看离线渲染的3D动画片的方式过渡到了使用实
Moreinformation
FunTime(1)Whathappensinmemory?1inti;2shortj;3doublek;4charc=a;5i=3;j=2;6k=ij;H.-T.Lin(NTUCSIE)Referenc
References(Section5.2)Hsuan-TienLinDeptartmentofCSIE,NTUOOPClass,March15-16,2010H.-T.Lin(NTUCSIE)ReferencesOOP03/15-16/20100/22FunTime(1)Whathappensinmemory?1inti;2
Moreinformation
RAGE来咯!关于IDTECH5MEGATEXTURE的一些技术信息更新
RAGE来了---关于IDTECH5MEGATEXTURE的一些技术信息更新H3D姚勇信息...1介绍...2一,目的...2二,实现...21,预处理...31.1贴图预处理...31.2几何预处理...72,绘制...73,具体步骤...83.1判断本帧绘制要用
Moreinformation
untitled
不料料例:(料)串度8年數串度4串度數數9-()利數struct{;;數struct數;9-2數利數Cstruct數;C++數;struct省略9-3例(料例)structpeople{charname[];intage;charaddress[4];charphone[];int
Moreinformation
untitled
99年度行車便不99年1130年度99年1210車便不年年1車便車車2力便省力降便度降離3CNS407454325433不便不不來數來良不力1歷不料不料2不3料力力1不2異34不不良料5不輪連力連力不良不不不不1量數1.21.5
Moreinformation
目次CONTENTS1數列與級數幾何圖形三角形的基本性質平行與四邊形
給同學的話134目次CONTENTS1數列與級數1-131-8113幾何圖形-118--36303三角形的基本性質3-1353-393-3443484平行與四邊形4-1544-594-36346831-1數列本節性質與公式摘要1數列:11a3a3nnan3nn1an14nn1
Moreinformation
chap02_part2
第二章繪圖程式Chapter2:GraphicsProgramming1WebGL程式設計步驟Step1:程式初始化Step2:計算頂點座標與色彩Step3:座標處理-Step3.1:將座標資料送至GPU-Step3.2:通知shader取得座標資料方式Step4:色彩處理-Step4.1:將色彩資料送至GPU-Step4.2:
Moreinformation
PowerPoint簡報
Paint繪圖板JAVA程式設計指導老師:鄞宗賢組員:4A3G0901劉彥佐4A3G0907韓偉志畫面預覽匯入參數packagepaint;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;主程式publicclasspaint{publicstaticvoidmain(string[]
Moreinformation
第42卷第5期2012年9月浙江大学学报人文社会科学版JournalofZhejiangUniversityHumanitiesandSocialSciencesVol42No5Sept2012DOI103785jissn1008942X201204052亚当斯密和文明社会的四个隐喻张国清张翼飞浙江大学公共管理学院
Moreinformation
九十五年度提升服務品質績效報告
年度錄六年錄料參來力錄立年度立行立理立理立六立禮立館立館館理行類參參立參類落便行不1料立林麗聯北林路參落便參23立參立了六歷精流館更館年來數數館識不易館館參降落館年年年列不參參年館行館參不便了更度年年館
Moreinformation
愛滋實務與治理的政治-綜合論壇以及面對這一連串以責任為架構衍生出來的愛滋政策如何造就了台灣現在的愛滋處境
愛滋治理與在地行動愛滋實務與治理的政治-綜合論壇王蘋(主持人)張正學愛滋()15愛滋185愛滋實務與治理的政治-綜合論壇以及面對這一連串以責任為架構衍生出來的愛滋政策如何造就了台灣現在的愛滋處境2011186愛滋治理與在地行動責任(MSM)MSM20112187愛滋實務與治理的政治-綜合論壇粗糙的年齡劃分ISO()(:.)!!
Moreinformation
老人憂鬱症的認識與老人自殺問題
18-2425-4445-64651086420(40%15%AffectCognition:driveBehaviorDSM-Vmajordepressiveepisode295ElectronicConvulsionTherapy;ECTRabins651%Rabins,199220%-30%Blazer,19946512.9
Moreinformation
MicrosoftWord-1--《材料力学基本训练》-2011(中学时内部使用版)---第1章绪论.doc
---------------------------------------内容简介本书是根据教育部高等学校工科本科课程教学基本要求和教育部工科力学教学指导委员会有关工科力学课程教学改革的基本要求编写而成的全书共十二章10个单元,每章的前面
Moreinformation
封面-12
第十二章701ClientTECHNOLOGYCO.,LTD.701Client701Server701Client"701Client",12-1:supervisor:supervisor:1.:00~991002.:00~63(63//)3.:1894.:1895.12-2TECHNOLOGYCO.,LTD.701Client
Moreinformation
OpenGLRender
Outline一般繪圖方式硬體加速繪圖方式DisplayListVertexArray序列式:gldrawarrays索引式:gldrawelementsVertexBufferObject(VBO)序列式索引式CallbackFunction2014/12/182一般繪圖方式glbegin(gl_triangles);for(inti=0;
Moreinformation
男人的大腦女人的大腦
4620146498男女大乾坤男女的戀愛行為男人的大腦女人的大腦20146498474820146498女人的戀愛行為70900男人的戀愛行為820146498495020146498對於愛與性的混淆男女所面臨的問題和我一樣喜歡做愛除了我,不可以看別人相信我,沒有問題現在,和我做愛知道如何引燃我從不傷害我朋友關係和性嫉妒和占有欲
Moreinformation
MicrosoftWord-01.DOC
第1章JavaScript简介JavaScript是NetScape公司为Navigator浏览器开发的,是写在HTML文件中的一种脚本语言,能实现网页内容的交互显示当用户在客户端显示该网页时,浏览器就会执行JavaScript程序,用户通过交互式的
Moreinformation
行政法概要本章學習重點本章大綱第一節行政作用之概念第二節行政作用之分類一行政程序法第三節行政作用法之範圍第四節行政作用之私法行為二行政罰法三行政執行法一源起二類型第五節行政作用中的非權力行為一類型二事實行為第六節行政作用之內部行為一行政規則
第6章行政作用及其分類行政法概要本章學習重點1.2.本章大綱第一節行政作用之概念第二節行政作用之分類一行政程序法第三節行政作用法之範圍第四節行政作用之私法行為二行政罰法三行政執行法一源起二類型第五節行政作用中的非權力行為一類型二事實行為第六節行政作用之內部行為一行政規則二內部指令CHAPTER6行政作用及其分類內文教學區1行政法概要
Moreinformation
書面
234567891011121314151617181920212223242526275.4互動功能畫面程式碼請參考附件-程式三在進入互動頁面時會執行setAllText()依寵物狀態數值來設定狀態文字與頭像並且依心情決定是否要不要播放音效觸摸的區域由於是自己寫的view所以並未透過xml來設置而是透過Layut.addview()來動態新增
Moreinformation
AndroidService
AndroidService-播放音樂建國科技大學資管系饒瑞佶2013/7V1AndroidServiceService是跟Activity並行一個音樂播放程式若沒使用Service,即使按home鍵畫面離開之後,音樂還是照播如果再執行一次程式,新撥放的音樂會跟先前撥放的一起撥,最後程式就會出錯執行中的程式完全看不到!但是,寫成Service就不同了
Moreinformation
MicrosoftPowerPoint-Class5.pptx
C++程式初探V2015暑期ver.1.0.1C++程式語言大綱1.大量檔案讀取&計算2.指標3.動態記憶體&動態陣列4.標準函式庫(STL)vector,algorithm5.結構與類別2大量檔案讀取&計算若目前有一個程式將讀取純文字文件(.txt)中的整數,並將該文件中的整數有小到大排序後,儲存到另外一個新的純文字件中假設有
Moreinformation
2ggggggg
[email protected];;,\\\\;;1.161.17NoilluminationConstantcolorsPolygonsParallellightDiffusereflectionFree-formsurfaces1.1Parallel
Moreinformation
PhotoshopCS3影像創造力基礎講堂8學習流程學習重要性學習難度必學指令工具實作應用範例創造舞台燈光的漸層繪圖延伸學習雜訊與半透明漸層8-1PhotoshopPhotoshop8136
漸層填色與圖樣填色088-1漸層填色8-2漸層填色編輯8-3油漆桶填色8-4編輯圖樣PhotoshopCS3影像創造力基礎講堂8學習流程學習重要性學習難度必學指令工具8-18-28-38-4實作應用範例創造舞台燈光的漸層繪圖延伸學習雜訊與半透明漸層8-1Photoshop8-1-1Photoshop8136漸層填色與圖樣填色漸層填色
Moreinformation
untitled
料2-1料料x,y,z料不不料濾料不料料不料錄料2-1a料2-1b2003a料b料2-1料2003料料行料濾料亂濾料料滑料理料2001料兩理料不TIN,TriangularIrregularNetwork82-2a數量料便精2003料行理料立狀連料狀立料
Moreinformation
運算子多載OperatorOverloading
多型Polymorphism講師:洪安1多型編譯時期多型(靜態多型)functionoverloading如何正確呼叫同名的函數?利用參數個數與型態operatoroverloading其實同functionoverloading執行時期多型(或動態多型)如何正確呼叫不同物件的相同名稱的成員函數利用繼承與多型2子類別與父類別物件間的指定(assignment)
Moreinformation
新・明解C言語入門編『索引』
!...75!=...48"...234""...9,84,240#define...118,213#include...148%...23%...23,24%%...23%d...4%f...29%ld...177%lf...31%lu...177%o...196%p...262%s...242,244%u...177
Moreinformation
蔡摇凯,等援化疗增强肿瘤免疫原性的研究进展猿员员蛋白(糟葬造则藻贼蚤糟怎造蚤灶)等,或者使一些肿瘤细胞低表达的膜蛋白(肿瘤免疫逃逸的机制之一)表达增加,如
猿员园中国肿瘤生物治疗杂志摇澡贼贼责:辕辕憎憎憎援遭蚤燥贼澡藻则援燥则早悦澡蚤灶允悦葬灶糟藻则月蚤燥贼澡藻则,允怎灶援圆园园怨,灾燥造援员远,晕燥援猿阅韵陨:员园援猿愿苑圆辕躁援蚤泽泽灶援员园园苑鄄猿愿缘
Moreinformation
########Firstsetofcommandsx3)y3)y