opengl光線跟蹤演算法
① 手機里的「OpenGL跟蹤」是干什麼的
這功能對手機用戶沒什麼用, 對開發人員才有用。
因為安卓的界面可以用opengl來繪制 ,而程序員需要了解繪制時候的過程是怎樣,某一時刻gpu在幹嘛?
② Vulkan相比於OpenGL、DX12、Metal和Mantle有什麼優勢、劣勢
具體如下:跨平台兼容性更好(相對於DX2, Metal,cuda),opengl的跨平台也做得很好,不過vulkan從某種角度來說就是為了替代opengl。用上vulkan幾乎可以全平台支持,對於一些小企業來說是個不錯的選擇。
這些核心功能還包括16位內存獲取高級計算,HLSL內存分布支持,視頻流的顯示,處理和編程,通過許多視頻編輯解碼器生成的YCbcRr顏色格式化紋理的直接抽樣。同時,它還帶來了與DirectX 12的更好兼容性,顯式支持多GPU,光線跟蹤支持,為下一代GPU奠定了基礎。
科納斯在SIGGRAPH2016上宣布Vulkan將支持自動多GPU功能,類似於Direct3D 12所提供的功能,顯示驅動程序不再需要處理多個GPU的使用,相反,兩個或更多完全不同的GPU之間可以智能地分配工作負載。
科納斯於2018年3月7日發布了Vulkan 1.1。它擴展了幾個核心功能,包括子集操作,例如多視圖、設備組、高級渲染和編輯操作程序跨流程API交互操作。
③ OpenGL是什麼東東
當然有自帶啦!!不信運行DXDIAG試試看!
OpenGL三維圖形標準是由AT&T公司UNIX軟體實驗室、IBM
、DEC、SUN、HP、Microsoft和SGI等多家公司在GL圖形庫標準的基礎
上聯合推出的開放式圖形庫,它使在微機上實現三維真實
感圖形的生成與顯示成為可能。由於OpenGL是開放的圖形標
准,用戶原先在UNIX下開發的OpenGL圖形軟體很容易移植到微
機上的WindowsNT/95上。筆者在VisualC++4.1(以下簡稱VC)集
成環境下,開發了基於OpenGL的三維真實感圖形應用程序,現
介紹如下。
微機上的OpenGL開發環境
基於OpenGL標准開發的應用程序必須運行於32位Windows
平台下,如WindowsNT或Windows95環境;而且運行時還需有動態
鏈接庫OpenGL32.DLL、Glu32.DLL,這兩個文件在安裝WindowsNT時已
自動裝載到C:\WINNT\SYSTEM32目錄下(這里假定用戶將WindowsNT
安裝在C盤上);而對於使用Windows95平台的用戶,則需手工將
兩個動態庫復制到Windows95目錄的SYSTEM子目錄中。安裝了
WindowsNT/95和VC4.1後,用戶就具備了基於OpenGL開發三維圖
形軟體的基本條件。
OpenGL程序設計的基本步驟
1.OpenGL在WindowsNT下的運行機制
OpenGL工作在客戶機/伺服器模式下,當客戶方(即基
於OpenGL標准開發的應用程序)向伺服器(OpenGL核心機制)發出
命令時,由伺服器負責解釋這些命令。通常情況下,客戶方
和伺服器是運行在同一台微機上的。由於OpenGL的運行機制
是客戶機/伺服器模式,這使得用戶能夠十分方便地在網
絡環境下使用OpenGL,OpenGL在WindowsNT上的這種實現方式通常
稱為網路透明性。
OpenGL的圖形庫函數封裝在動態鏈接庫OpenGL32.DLL中,
客戶機中的所有OpenGL函數調用,都被傳送到伺服器上,由
WinSrv.DLL實現功能,再將經過處理的指令發送到Win32設備驅
動介面(DDI),從而實現在計算機屏幕上產生圖像。
若使用OpenGL圖形加速卡,則上述機制中將添加兩個
驅動器:OpenGL可裝載客戶模塊(OpenGLICD)將安裝在客戶端;硬
件指定DDI將安裝在伺服器端,與WinDDI同一級別。
2.OpenGL的庫函數
開發基於OpenGL的應用程序,必須先了解OpenGL的庫函
數。OpenGL函數命令方式十分有規律,每個庫函數均有前綴gl
、glu、aux,分別表示該函數屬於OpenGL基本庫、實用庫或輔助
庫。WindowsNT下的OpenGL包含了100多個核心函數,均以gl作為前
綴,同時還支持另外四類函數:
OpenGL實用庫函數:43個,以glu作為前綴;
OpenGL輔助庫函數:31個,以aux作為前綴;
Windows專用庫函數(WGL):6個,以wgl作為前綴;
Win32API函數(WGL):5個,無前綴。
OpenGL的115個核心函數提供了最基本的功能,可以實
現三維建模、建立光照模型、反走樣、紋理映射等;OpenGL實
用庫函數在核心函數的上一層,這類函數提供了簡單的調
用方法,其實質是調用核心函數,目的是減輕開發者的編程
工作量;OpenGL輔助庫函數是一些特殊的函數,可以供初學者
熟悉OpenGL的編程機制,然而使用輔助庫函數的應用程序只
能在Win32環境中使用,可移植性較差,所以開發者應盡量避
免使用輔助庫函數;Windows專用庫函數(WGL)主要針對WindowsNT
/95環境的OpenGL函數調用;Win32API函數用於處理像素存儲格
式、雙緩存等函數調用。
3.VC環境下基於OpenGL的編程步驟
下面介紹在VC環境中建立基於Opeetting菜單選項,在Link欄的Lib輸入域中
添加openg132.lib、glu32.lib,若需使用OpenGL的輔助庫函數,則還
需添加glaux.lib。
(3)選擇View/ClassWizard菜單選項,打開MFC對話框,在
ClassName欄中選擇CMyTestView類,進行以下操作:
選擇WM_CREATE消息,滑鼠單擊EditCode,將OpenGL初始化代碼
添加到OnCreate()函數中:
/*定義像素存儲格式*/
PIXELFORMATDESCRIPTORpfd=
{
sizeof(PIXELFORMATDESCRIPTOR),
1,
PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL,
PFD_TYPE_RGBA,
24,
0,0,0,0,0,0,
0,0,0,0,0,0,0
32,
0,0,
PFD_MAIN_PLANE,
0,
0,0,0,
}
CCLientdc(this);
intpixelFormat=ChoosePixelFormat(dc.m_hDC,&pfd);
BOOLsuccess=SetPixelFormat(dc.m_hDC,pixelFormat,&pfd);
m_hRC=wglCreateContext(dc.m_hDC);
選擇WM_DESTORY消息,在OnDestory()中添加以下代碼:
wglDeleteContext(m_hRC);
在MyTestView.cpp中,將以下代碼添加到PreCreateWindows()函數中:
cs.style|=WS_CLIPCHILDREN|WS_CLIPSIBLINGS;
OpenGL只對WS_CLIPCHILDREN|WS_CLIPSIBLINGS類型窗口有效;
在MyTestView.cpp中,將以下代碼添加到OnDraw()函數中:
wglMakeCurrent(pDC->m_hDC,m_hRC);
DrawScene();//用戶自定義函數,用於繪制三維場景;
wglMakeCurrent(pDC->m_hDC,NULL);
在MyTestView.cpp中,添加成員函數DrawScene():
voidCMyTestView::DrawScene()
{/*繪制三維場景*/}
(4)在MyTestView.h中包含以下頭文件並添加類成員說明:
#include
#include
#include
在CTestView類中的protected:段中添加成員變數聲明:
HGLRCm_hRC;
同時添加成員函數聲明:
DrawScene();
這樣,一個基於OpenGL標準的程序框架已經構造好,用
戶只需在DrawScene()函數中添加程序代碼即可。
建立三維實體模型
三維實體建模是整個圖形學的基礎,要生成高逼真
度的圖像,首先要生成高質量的三維實體模型。
OpenGL中提供了十幾個生成三維實體模型的輔助庫函
數,這些函數均以aux作為函數名的前綴。簡單的模型,如球
體、立方體、圓柱等可以使用這些輔助函數來實現,如
auxWireSphere(GLdoubleradius)(繪制一半徑為radius的網狀球體)。
但是這些函數難以滿足建立復雜三維實體的需要,所以用
戶可以通過其它建模工具(如3DS等)來輔助建立三維實體模
型資料庫。筆者在三維實體的建模過程中採用3DS提供的2D
Shape、3DLofter和3DEditor進行模型的編輯,最後通過將模型數
據以DXF文件格式輸出存儲供應用程序使用。
真實感圖形的繪制
1.定義光照模型和材質
(1)光源。OpenGL提供了一系列建立光照模型的庫函
數,使用戶可以十分方便地在三維場景中建立所需的光照
模型。OpenGL中的光照模型由環境光(AmbientLight)、漫射光
(DiffuseLight)、鏡面反射光(SpecularLight)等組成,同時還可設
置光線衰減因子來模擬真實的光源效果。
例如,定義一個黃色光源如下:
GlfloatLight_position[]={1.0,1.0,1.0,0.0,};
GlfloatLight_diffuse[]={1.0,1.0,0.0,1.0,};
glLightfv(GL_LIGHT0,GL_POSTTION,light_position);//定義光源位置
glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse);//定義光源漫射光
光源必須經過啟動後才會影響三維場景中的實體,可以通過以下指令使光源有效:<
glEnable(LIGHTING);//啟動光照模型;
glEnable(GL_LIGHT0);//使光源GL_LIGHT0有效;
OpenGL中一共可以定義GL_LIGHT0~GL_LIGHT7八個光源。
(2)材質。OpenGL中的材質是指構成三維實體的材料在
光照模型中對於紅、綠、藍三原色的反射率。與光源的定義
類似,材質的定義分為環境、漫射、鏡面反射成分,另外還
有鏡面高光指數、輻射成分等。通過對三維實體的材質定義
可以大大提高應用程序所繪制的三維場景的逼真程度。例
如:
/*設置材質的反射成分*/
GLfloatmat_ambient[]={0.8,0.8,0.8,1.0};
GLfloatmat_diffuse[]={0.8,0.0,0.8,1.0};/*紫色*/
GLfloatmat_specular[]={1.0,0.0,1.0,1.0};/*鏡面高光亮紫色*/
GLfloatmat_shiness[]={100.0};/*高光指數*/
glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambient);/*定義環境光反射率*/
glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse);/*定義漫射光反射率*/
glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular);/*定義鏡面光反射率*/
glMaterialfv(GL_FRONT,GL_SHINESS,mat_shiness);/*定義高光指數*/
(3)材質RGB值與光源RGB值的關系。OpenGL中材質的顏色
與光照模型中光源的顏色含義略有不同。對於光源,R、G、B
值表示三原色在光源中所佔有的比率;而對於材質定義,R、
G、B的值表示具有這種材質屬性的物體對於三原色的反射
比率,場景中物體所呈現的顏色與光照模型、材質定義都相
關。例如,若定義的光源顏色是(Lr,Lg,Lb)=(1.0,1.0,1.0)(白光),
物體的材質顏色定義為(Mr,Mg,Mb)=(0.0,0.0,0.8),則最終到達人
眼的物體顏色應當是(Lr*Mr,Lg*Mg,Lb*Mb)=(0.0,0.0,0.8)(藍色)。
2.讀取三維模型數據
為了繪制三維實體,我們首先必須將預先生成的三
維實體模型從三維實體模型庫中讀出。下圖描述了讀取三
維實體模型的流程。
3.三維實體繪制
由於3DS的DXF文件中對於三維實體的描述是採用三角
形面片逼近的方法,而在OpenGL函數庫中,提供了繪制三角形
面片的方法,所以為三維實體的繪制提供了方便。以下提供
了繪制三角形面片的方法:
glBegin(TRANGLES);//定義三角形繪制開始
glVertexf((GLfloat)x1,(GLfloat)y1,(GLfloat)z1);//第一個頂點
glVertexf((GLfloat)x2,(GLfloat)y2,(GLfloat)z2);//第二個頂點
glVertexf((GLfloat)x3,(GLfloat)y3,(GLfloat)z3);//第三個頂點
glEnd();//繪制結束
為了提高三維實時動畫的顯示速度,我們利用了
OpenGL庫中的顯示列表(DisplayList)的功能,將三維場景中的實
體分別定義為單獨的顯示列表,預先生成三維實體。在圖形
顯示時,只需調用所需的顯示列表即可顯示相應的三維實
體,而不需要重新計算實體在場景中的坐標,避免了大量的
浮點運算。在調用顯示列表前所作的旋轉、平移、光照、材
質的設定都將影響顯示列表中的三維實體的顯示效果。具
體實現演算法如下:
for(ObjectNo=0;ObjectNo<實體個數;ObjectNo++)
{
glNewList(ObjectNo,GL_COMPILE);//創建第ObjectNo個實體的顯示列表
for(Fac
④ 三維動畫設計軟體
三維動畫製作軟體 :
《侏羅紀公園》、《第五元素》、《泰坦尼克號》這些電影想必大家都看過了吧,我們為這些影片中令人驚嘆的特技鏡頭所打動,當我們看著那些異常逼真的恐龍、巨大無比的泰坦尼克號時,可曾想到是什麼創造了這些令人難以置信的視覺效果?其實幕後的英雄是眾多的三維動畫製作軟體和視頻特技製作軟體。好萊塢的電腦特技藝術家們正是藉助這些非凡的軟體,把他們的想像發揮到極限,也帶給了我們無比的視覺享受。
實際上,實現電腦視覺特技可以說是電腦軟體和硬體的一大難題,因為這需要非常強大的軟體和能提供無比運算能力的硬體平台。所以這項工作可以說是在高科技電影中花費最大和最費時的,並且需要大量的專業高級技術人才。要知道《泰坦尼克號》中光是視頻特技部分的花費就是2500萬美圓。
在電腦影視特技的領域中,SGI可以說是無人不知,其所生產的SGI超級圖形工作站可算是最好的3D與視覺特技的硬體平台,它提供給創作人員異常強大的圖形工作能力,具有超級的實時反饋,可以讓工作人員以最快的速度進行創作。Softimage 3D、MAYA、Flint等軟體在SGI平台上可以發揮最好的性能。雖然現在PC平台也開始入侵視頻製作的領域,但是SGI依然是視頻領域高端運用的絕對主力選手。
光有超強的硬體平台還不夠,電影電視中那些逼真的形象還是得靠各種各樣的超級3D圖像軟體來實現。這些特技軟體每年的全世界銷售額在12億美圓左右。而且各專業廠商都有自己特定的優勢產品和用戶群,所以形成了群雄爭天下的局面。Softimage、Alias/Wavefront這些家喻戶曉的軟體更可以說是割據一方,各有特點。然而讓人苦惱的是,這些工作站級的軟體原來都是只能運行在SGI的超級圖形工作站上的,而一台SGI工作站的價格在數萬到數十萬美圓,可以說是巨額投資,這也相對制約了這些軟體的普及,使它們成為少量專業人員的工具。這一狀況直到軟體業的巨人——Microsoft染指3D動畫業才得到了徹底的改變。1994年,Microsoft公司以1.3億美圓的巨資收購了Softimage公司,使其成為Microsoft公司的全資子公司。隨後便推出了Softimage 3D for NT版,這也標志著高端圖形軟體開始進入PC的大家庭,可以說是視頻特技軟體業的一顆原子彈。這之後各軟體廠商也趕緊推出他們自己軟體的NT版,因為他們知道PC平台有價格低、發展迅速的優勢,必定有大量的用戶將轉向PC平台,況且如果不緊跟Microsoft的腳步,必將被淘汰。SGI公司看到這種情形也不示弱,於1995年將Alias研究公司和Wavefront公司收購,順勢推出了最新的3D動畫軟體——MAYA。現在基本上各種高端圖形軟體都有了各自的NT版,如Softimage 3D、MAYA、Houdini、Effect等。許多從事圖像特技的公司也紛紛開始使用價格低廉的PC平台從事設計工作,只把最復雜的部分放在SGI的工作站上來製作。
雖然現在Microsoft公司已將Softimage公司賣出,但是Microsoft公司在這場革命中所扮演的領導者角色卻是不容質疑,下面我們就為大家介紹一下現在國外流行的各種3D與視覺特技軟體。這些軟體都可以運行在PC平台上。
一、Softimage 3D
Softimage 3D是Softimage公司出品的三維動畫軟體。它在動畫領域可以說是無人不知的大哥大。《侏羅紀公園》、《第五元素》、《閃電悍將》等電影里都可以找到它的身影。Softimage 3D傑出的動作控制技術,使越來越多的導演要選用它來完成電影中的角色動畫。《侏羅紀公園》里身手敏捷的速龍、《閃電悍將》里閃電俠那飄盪的斗篷,都是由Softimage 3D來設置動畫的。
Softimage 3D最新版是3.8版,3.8又分為普通版和Extreme版,Extreme版增加了mental ray渲染器和粒子系統,還有一些增強的功能模塊。但普通版在動畫能力上同Extereme版一樣,絲毫沒有遺漏。
Softimage 3D最知名的部分之一是它的mental ray超級渲染器。有人說mental ray是所有動畫軟體中最強的渲染器,在我看來這一點也不誇張。Mental ray渲染器可以著色出具有照片品質的圖像,《星際戰隊》中昆蟲異形就是用mental ray渲染的。許多插件廠商專門為mental ray設計的各種特殊效果則大大擴充了mental ray的功能,我們能用它製作出各種各樣奇妙的效果。mental ray還具有很快的渲染速度。我曾做過一個實驗,用3Ds Max的raygun和Softimage 3D的mental ray來渲染同一張玻璃杯的圖像,mental ray的渲染速度要高於rangun很多,而且渲染品質更是讓raygun相形見拙。mental ray manager還可以讓我們輕松地製作出各種光暈、光斑的效果。
Softimage 3D的另一個重要特點就是超強的動畫能力,它支持各種製作動畫的方法,可以產生非常逼真的運動,它所獨有的functioncurve功能可以讓我們輕松地調整動畫,而且具有良好的實時反饋能力,使創作人員可以快速地看到將要產生的結果。
Softimage 3D的設計界面由5個部分組成,分別提供不同的功能。而它提供的方便快捷鍵可以使用戶很方便地在建模、動畫、渲染等部分之間進行切換。據說它的界面設計採用直覺式,可以避免復雜的操作界面對用戶造成的干擾。
Softimage 3D從3.7版本開始將nurbs功能完全引入。提供blend、trim等高級的nurbs技術,但是從易用性上來講同Rhino 3D等專業nurbs建模工具還有不小的差距。
Softimage 3D下一代版本的代碼名是Sumatra。據Softimage公司聲稱,這將是第一個將非線性概念引入到三維動畫創作中的軟體。它將完全改變現有的動畫製作流程,極大地提高創作人員的效力。讓我們拭目以待它的到來。
Softimage公司的官方站點是:www.softimage.com
二、Alias/Wavefront MAYA
MAYA是Alias/Wavefront公司出品的最新三維動畫軟體。雖然還是個新生兒,但發展的步伐卻有超過Softimage 3D的勢頭。實際上Alias/Wavefront原來並不是一個公司,Wavefront公司被Alias公司所收購,而Alias公司卻被 Silicon Graphics公司所收購,最終組成了現在的Alias/Wavefront公司。Alias公司和Wavefront公司原來在3D領域都有著自己的強項,如Wavefront公司的Dynamation和3Design等。而Alais公司的Power animator和Power Modle等也是文明於世。
Alias/Wavefront推出的MAYA可以說是當前電腦動畫業所關注的焦點之一。它是新一代的具有全新架構的動畫軟體。從MAYA這個古老而又神秘的名字就可以看出,這個軟體蘊涵著巨大的能量。下面就介紹一下MAYA的新功能。
(一)採用object oriented C++ code整合OpenGL圖形工具,提供非常優秀的實時反饋表現能力,這一點可能是每一個動畫創作者最需要的。我想任何一個人都不願意自己做的修改要等很長時間才能看到結果。
(二)具有先進的數據存儲結構,強力的scenceobject處理工具——Digital project。
(三)運用彈性使用介面及流線型工作流程,使創作者可以更好地規劃工程。
(四)使用scripiting & command language語言,MAYA的核心引擎是一種稱為MEL(MAYA Embedded Language馬雅嵌入式語言)的加強型scripiting與command語言。MEL是一種全方位符合各種狀況的語言,支援所有的MAYA函數命令。
(五)在基本的架構中,MAYA自定undo/redo的排序,同時MAYA也提供改變procere stack(程序堆疊)及re-excute(再執行)的能力。
(六)層的概念在許多圖形軟體中已經廣泛地運用了。MAYA也把層的概念引入到動畫的創作中,你可以在不同的層進行操作,而各個層之間不會有影響。當然你也可以將層進行合並或者刪除不需要的層。
在MAYA中最具震撼力的新功能可算是Artisan了。它讓我們能隨意地雕刻nurbs面,從而生成各種復雜的形象。如果你有數字化的輸入設備,如數字筆,那你更是可以隨心所欲地製作各種復雜的模型,那些一聽到要建模就頭疼的人有解葯了。
MAYA的強大是不容懷疑的,你可以到SGI公司的官方站點(http://www.aw.sgi.com/)去看看它的演示動畫,我想你一定會驚嘆不已的。
三、Houdini
可能國內的讀者對Houdini不是很了解,估計也沒有什麼人用它。不過它在國外的確是一個非常惹人注目的三維動畫和視覺特技軟體。同其它軟體不同的是,它把三維動畫同非線性編輯結合在了一起。
Houdini特別厲害的功能應該是它的粒子系統和變形球系統。《終結者Ⅱ》里的液態機器人就是用Houdini的變形球系統來完成的,那驚人的效果到現在還不能讓我忘懷。
Houdini的界面也比較復雜,每個控制的參數很多,不過好的東西總是難學么。Houdini其它方面的東西我也不太了解,大家去它的站點看看吧。http://www.sidefx.com/
四、3Ds Max
說到三維動畫軟體,如果不提3Ds Max恐怕要被人笑話了。這套由Autodesk公司推出的,應用於PC平台的三維動畫軟體從1996年開始就一直在三維動畫領域叱吒風雲。它的前身就是 3Ds,可能是依靠3Ds在PC平台中的優勢,3Ds Max一推出就受到了矚目。它支持Windows 95、Windows NT,具有優良的多線程運算能力,支持多處理器的並行運算,豐富的建模和動畫能力,出色的材質編輯系統,這些優秀的特點一下就吸引了大批的三維動畫製作者和公司。現在在國內,3Ds Max的使用人數大大超過了其它三維軟體。可以說是一枝獨秀。
3Ds Max從1.0版發展到現在的2.5版,可以說是經歷了一個由不成熟到成熟的過程。現在的2.5版已經具有了各種專業的建模和動畫功能。nurbs、dispace modify、camer traker、motion capture這些原來只有在專業軟體中才有的功能,現在也被引入到3Ds Max中。可以說今天的3Ds Max給人的印象絕不是一個運行在PC平台的業余軟體了,從電視到電影,你都可以找到3Ds Max的身影。我想很多人看過《迷失太空》這部科幻電影了,你知道嗎,這部電影中的絕大多數特技鏡頭都是由3Ds Max來完成的。
3Ds Max的成功在很大的程度上要歸功於它的插件。全世界有許多的專業技術公司在為3Ds Max設計各種插件,他們都有自己的專長,所以各種插件也非常專業。例如增強的粒子系統sandblaster, ourburst, 設計火、煙、雲的afterburn, 製作肌肉的metareyes, 製作人面部動畫的jetareyes。有了這些插件,我們就可以輕松設計出驚人的效果。據說每天都有新的為3Ds Max設計的插件推出。嘿嘿,我們這些想偷懶的人全靠它們了。
不過我覺得3Ds Max也還有不足之處,比如它的渲染質量就不怎麼樣。雖然它有radisoray、 raygun這些增強的渲染器,但不管從渲染質量和渲染速度上來講,同Softimage 3D這類軟體還是有差距。
http://www.ktx.com/
五、LIGHTWAVE 3D
目前LIGHTWAVE最新的版本是5.5版,它在好萊塢所具有的影響一點也不比Softimage、Alias等差。可是它的價格卻是非常的低廉,這也是眾多公司選用它的原因之一。但光有低廉的價格還不行,LIGHTWAVE 3D的品質也是非常出色。最近名揚全球的好萊塢巨片《泰坦尼克號》中的泰坦尼克號模型,就是用LIGHTWAVE製作的。
據官方統計,現在在電影與電視的三維動畫製作領域中,使用LIGHTWAVE 3D的比例大大高於其它軟體,連Softimage 3D也甘拜下風。全世界大約有4萬人在使用LIGHTWAVE3D(便宜用的人自然就多了嘛!)。Digital Domain 、Will Vinton、Amblin Group、Digital Muse、Foundation等頂尖製作公司,也紛紛採用LIGHTWAVE 3D來進行創作。
LIGHTWAVE 3D是全球唯一支援大多數工作平台的3D系統。Intel(Windows NT/95/98)、SGI、 SunMicro System、PowerMac、DEC Alpha,各種平台上都有一致的操作界面,無論你使用高端的工作站系統或使用PC,LIGHTWAVE3D都能勝任。
現在的LIGHTWAVE 3D 5.5版包含了動畫製作者所需要的各種先進的功能∶光線追蹤(Raytracing)、動態模糊(Motion Blur)、鏡頭光斑特效(Lens Flares)、反向運動學(Inverse Kinematics,IK)、Nurbs建模(MetaNurbs)、合成(Compositing)、骨骼系統(Bones)等。
它的官方站點是:http://www.newtek.com/
六、Rhino3D
基本上每一個3D動畫軟體都有建模的功能。但是如果你想有一套超強功能的nurbs建模工具,恐怕非rhino3D 莫屬了。Rhino3D是真正的nurbs建模工具。它提供了所有nurbs功能,豐富的工具涵蓋了nurbs建模的各方面:Trim、blend、 loft、fourside,可以說是應有盡有,你能夠非常容易地製作出各種曲面。
Rhino3D的另一大優點就是它提供了豐富的輔助工具,如定位、實時渲染、層的控制、對象的顯示狀態等,這些可以極大地方便用戶的操作。
Rhino3D可以定製自己的命令集。你可以將常用到的一些命令集做成一個命令按鈕,使用後可以產生一系列的操作,很像DOS里的批處理命令。這對那些經常要重復的操作特別有用,例如調整人臉形狀。
Rhino3D還提供命令行的輸入方法,用戶可以輸入命令的名稱和參數。不過在我看來這倒是有些麻煩,因為你得去記命令的拼法,能少用還是少用吧。
因為rhino3D是專門的nurbs建模軟體,所以不提供動畫的功能。在渲染方面rhino3D還不錯,提供了材質等較多的控制。不過我還是只把它當作專門建立模型的工具。
Rhino3D可以輸出許多種格式的文件。現在已經可以直接輸出nurbs模型到3Ds Max、Softimage 3D等軟體中了,你也可以把nurbs轉換為多邊形組成的物體,供其它軟體來調用。
轉換時你可以方便地選擇生成不同質量的模型,適應不同的需求。現在已經有越來越多的人用rhino3D來建模了,如果你還沒有用過的話,去試試吧!
www.rhino3D.com
七、World builder
在三維動畫領域當中,可能製作令人信服的三維地貌環境是最困難的部分之一了。如果我們用普通的三維動畫製作軟體來製作的話,肯定要花費大量的時間和精力來實現現實環境中的每一個細節。World builder的推出可以說是帶給了我們巨大的福音。
World builder是一套專門的三維造景軟體,它可以非常方便地生成各種地形地貌與各種逼真的樹木花草,而且生成的環境絕對是真三維的,你可以從各個角度觀看或者是生成動畫。這一切恐怕還要歸功於World builder內建的材料庫了,包括地面、水、花草樹木、天空等等,非常豐富。
World builder的渲染速度是一個弱點,如果你要渲染一張比較復雜的場景,可能花費很長的時間,不過渲染的品質還不錯。
這個軟體的界面非常像3Ds Max,而且許多操作也非常類似,但我有一種怪怪的感覺,不太喜歡,可能是看3Ds Max過多的緣故吧。
World builder還支持很多的三維動畫軟體,你可以將在world builder里生成的場景直接調入到3Ds Max、LIGHTWAVE等軟體里去使用,並且可以將場景的材質也一同輸出。這是一個非常好的特點,我們可以使用像3Ds Max這樣的動畫軟體來實現後期的著色和動畫。
八、World Constrution Set
World Constrution Set也是一套3D造景軟體,它所實現的功能基本上同World builder相同,不過它的知名度可是一點也不比World builder小。
World Constrution Set同其它造景軟體一樣,提供了許多現成的庫供設計者調用,但不同的是,在World Constrution Set中雲朵、湖泊等都可以設置為運動的,在渲染後的動畫中可以產生非常真實的效果。
細心的讀者會發現World Constrution Set的一個不足之處,就是場景中許多精細的地方是由貼圖來實現的,而不是真正的三維模型,所以有些地方放大後會有不小的粗糙感。
World Constrution Set的界面設計得非常好,直觀的地圖編輯器可以方便地產生各種真實的地貌。相比之下,World builder在這點上就較差了。
這套軟體號稱可以和3Ds Max等軟體做密切的配合,我想這也是三維造景軟體所必須的一個部分吧。
九、TrueSpace 4.0
我想大部分人肯定知道Truespace吧。我在Windows環境下接觸的第一個三維軟體就是Truespace。不過那時候還是2.0版本,現在 Truespace已經是4.0了。原來Truespace給我的感覺是像一個業余的三維動畫製作軟體,界面雖然不錯,但功能有限,渲染質量也不行。不過現在看了Truespace 4.0以後,確實發現它強悍了許多。渲染的質量非常好。
Truespace 4.0高超的渲染品質要歸功於全新的渲染器,由Lightwork design公司開發的LightWorks Pro渲染引擎,TrueSpace 4.0將高級的光傳導渲染法(radiocity)與傳統的渲染功能完美地整合在一起,如光線追蹤(raytrace)。光傳導技術的運用可以大大加強場景的真實性。
TrueSpace 4.0同前幾個版本一樣擁有迷人的界面,這也是我所見到的最有藝術風格的界面了。在TrueSpace 4.0中,增加了更多傳統的控制元件,如按鈕、面板、滑動器等,界面本身已經變成3D工作中的一部分了,並且完全可由 3D硬體來加速。如果你比較喜歡原來的2D界面,仍然可以使用。當然也可以同時結合2D及3D界面元件。
TrueSpace 4.0的實時渲染能力號稱可與那些3D游戲相比擬。它的這項功能比使用3D加速卡的TrueSpace 3.0著色品質還高,而且速度加快3到5倍。
如果一個三維動畫製作軟體沒有nurbs建模能力,那在大多數人看來最多就是業余級的,Truespace 4.0當然也不甘落後,它的模型工具可以直接在表面上執行nurbs,並且具有實時反饋的能力。
總之,Truespace 4.0是一個相當不錯的動畫軟體,雖然比Softimage這樣的專業軟體比功能上還有差距,但與3Ds Max大有一爭。
十、BRYCE3D
BRYCE3D 2.0也是一套3D的造景軟體,由Metacreations公司出品。
在BRYCE中你可以設定地形、山脈、湖泊、雲彩等,另外你也可以藉由輸入圖形或是物件的方式產生地形,如果不牽涉到輸入的話,你通常只需要進入相關視窗中點選你要的物件,或是直接按一下圖形即可。BRYCE的地面以及山脈岩石等物件是採取隨機的方式產生的,因此你每次按下圖形鈕所產生的物件形狀都不太一樣,至於材質設定方面,除了內附的材質庫外,它也允許你輸入喜歡的材質來編輯,當然裡面本來就有一個材質編輯器,可以讓你自己去產生材質。不過這些在我看來都還是太業余了點,同World builder這類軟體相比還有不小的差距。
BRYCE3D最大的一個毛病就是渲染速度太慢。渲染一簡單的地形需要花費數十分鍾的時間,簡直不能讓人忍受。不過Metacreations聲稱,這是由於BRYCE3D在渲染時使用的是光線跟蹤演算法的原因。在我看來渲染費這么長的時間,但從最後的圖像質量來看並不是值得的。BRYCE3D的另一個毛病是動畫能力不足,同其它軟體比起來就像小學生。
據說在bryce3D 3.0里這些會有所改善,就讓我們拭目以待吧!
十一、POSER
POSER是專門用來製作人體的軟體。現在最高版本是4.0。在製作人物方面POSER可以說是游刃有餘。它可以產生各種類型的人物:男性、女性、小孩等。你可以輕易地選擇各種類型的人物部件,從頭部到腳部你可以從現成的庫中選擇來組成千變萬化的形象。
你還可以創建動物模型。製作好模型以後還可以選擇各種衣服、皮膚等。現在POSER也支持動畫。不過我覺得這個功能卻是不行,生成的動畫最多隻能用來做教學演示用。不過POSER可以將製作的模型生成3Ds文件,供其它軟體調用。但這種轉換的精度不是很高,模型會變的比較粗糙。
POSER是一個很業余的小玩意。界面卻是非常的「藝術」,我很喜歡。如果你想製作真實的人物動畫的話,還是不要用它的好。
十二、4dpaint
直接在三維模型上繪圖是一種非常實用的,而且是製作極好的材質的方法,它比傳統的貼圖方法更加靈活,而且貼圖更加准確。但是這種方法原來只有在SGI 工作站上才能做到,因為它需要極大的實時反饋能力,製作人員需要馬上看到繪制的結果並做出調整。不過現在PC平台上也有了如此的繪圖軟體—— 4dpaint。
你可以把製作好的三維模型調入4dpaint中,4dpaint提供了各種筆刷與各種繪圖的材料,你可以直接在模型上繪制顏色,也可以把某種貼圖繪在模型上。你甚至可以直接繪制凹凸貼圖。而且4dpaint的實時渲染能力非常強,所繪即所得。你還可以旋轉模型,從各個不同的角度去觀看你繪制的結果,改變場景的光線設置,你可以在不同的燈光環境下觀察貼圖的效果。繪制好以後你只要將貼圖保存,在三維軟體里調用就可以了。
現在4dpaint可以和Softimage 3D、3Ds Max等三維軟體很好地配合,你甚至可以從3Ds Max中直接進入4dpaint,就像使用3Ds Max的一個部分,非常方便。
和4dpaint競爭的有3Dpainter,功能同4dpaint差不多,不過界面卻很復雜,所以我還是喜歡 4dpaint,大家還是試試看吧。
4dpaint的官方站點是:http://www.4dvision.com
典尚設計專業三維動畫製作http://www.dillsun.com
⑤ opengl 光線追蹤
目前做光線追蹤還是靠CPU,CUDA等GPU加速實現。
⑥ OpenGl是什麼
OpenGL三維圖形標準是由AT&T公司UNIX軟體實驗室、IBM
、DEC、SUN、HP、Microsoft和SGI等多家公司在GL圖形庫標準的基礎
上聯合推出的開放式圖形庫,它使在微機上實現三維真實
感圖形的生成與顯示成為可能。由於OpenGL是開放的圖形標
准,用戶原先在UNIX下開發的OpenGL圖形軟體很容易移植到微
機上的WindowsNT/95上。筆者在VisualC++4.1(以下簡稱VC)集
成環境下,開發了基於OpenGL的三維真實感圖形應用程序,現
介紹如下。
微機上的OpenGL開發環境
基於OpenGL標准開發的應用程序必須運行於32位Windows
平台下,如WindowsNT或Windows95環境;而且運行時還需有動態
鏈接庫OpenGL32.DLL、Glu32.DLL,這兩個文件在安裝WindowsNT時已
自動裝載到C:\WINNT\SYSTEM32目錄下(這里假定用戶將WindowsNT
安裝在C盤上);而對於使用Windows95平台的用戶,則需手工將
兩個動態庫復制到Windows95目錄的SYSTEM子目錄中。安裝了
WindowsNT/95和VC4.1後,用戶就具備了基於OpenGL開發三維圖
形軟體的基本條件。
OpenGL程序設計的基本步驟
1.OpenGL在WindowsNT下的運行機制
OpenGL工作在客戶機/伺服器模式下,當客戶方(即基
於OpenGL標准開發的應用程序)向伺服器(OpenGL核心機制)發出
命令時,由伺服器負責解釋這些命令。通常情況下,客戶方
和伺服器是運行在同一台微機上的。由於OpenGL的運行機制
是客戶機/伺服器模式,這使得用戶能夠十分方便地在網
絡環境下使用OpenGL,OpenGL在WindowsNT上的這種實現方式通常
稱為網路透明性。
OpenGL的圖形庫函數封裝在動態鏈接庫OpenGL32.DLL中,
客戶機中的所有OpenGL函數調用,都被傳送到伺服器上,由
WinSrv.DLL實現功能,再將經過處理的指令發送到Win32設備驅
動介面(DDI),從而實現在計算機屏幕上產生圖像。
若使用OpenGL圖形加速卡,則上述機制中將添加兩個
驅動器:OpenGL可裝載客戶模塊(OpenGLICD)將安裝在客戶端;硬
件指定DDI將安裝在伺服器端,與WinDDI同一級別。
2.OpenGL的庫函數
開發基於OpenGL的應用程序,必須先了解OpenGL的庫函
數。OpenGL函數命令方式十分有規律,每個庫函數均有前綴gl
、glu、aux,分別表示該函數屬於OpenGL基本庫、實用庫或輔助
庫。WindowsNT下的OpenGL包含了100多個核心函數,均以gl作為前
綴,同時還支持另外四類函數:
OpenGL實用庫函數:43個,以glu作為前綴;
OpenGL輔助庫函數:31個,以aux作為前綴;
Windows專用庫函數(WGL):6個,以wgl作為前綴;
Win32API函數(WGL):5個,無前綴。
OpenGL的115個核心函數提供了最基本的功能,可以實
現三維建模、建立光照模型、反走樣、紋理映射等;OpenGL實
用庫函數在核心函數的上一層,這類函數提供了簡單的調
用方法,其實質是調用核心函數,目的是減輕開發者的編程
工作量;OpenGL輔助庫函數是一些特殊的函數,可以供初學者
熟悉OpenGL的編程機制,然而使用輔助庫函數的應用程序只
能在Win32環境中使用,可移植性較差,所以開發者應盡量避
免使用輔助庫函數;Windows專用庫函數(WGL)主要針對WindowsNT
/95環境的OpenGL函數調用;Win32API函數用於處理像素存儲格
式、雙緩存等函數調用。
3.VC環境下基於OpenGL的編程步驟
下面介紹在VC環境中建立基於Opeetting菜單選項,在Link欄的Lib輸入域中
添加openg132.lib、glu32.lib,若需使用OpenGL的輔助庫函數,則還
需添加glaux.lib。
(3)選擇View/ClassWizard菜單選項,打開MFC對話框,在
ClassName欄中選擇CMyTestView類,進行以下操作:
選擇WM_CREATE消息,滑鼠單擊EditCode,將OpenGL初始化代碼
添加到OnCreate()函數中:
/*定義像素存儲格式*/
PIXELFORMATDESCRIPTORpfd=
{
sizeof(PIXELFORMATDESCRIPTOR),
1,
PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL,
PFD_TYPE_RGBA,
24,
0,0,0,0,0,0,
0,0,0,0,0,0,0
32,
0,0,
PFD_MAIN_PLANE,
0,
0,0,0,
}
CCLientdc(this);
intpixelFormat=ChoosePixelFormat(dc.m_hDC,&pfd);
BOOLsuccess=SetPixelFormat(dc.m_hDC,pixelFormat,&pfd);
m_hRC=wglCreateContext(dc.m_hDC);
選擇WM_DESTORY消息,在OnDestory()中添加以下代碼:
wglDeleteContext(m_hRC);
在MyTestView.cpp中,將以下代碼添加到PreCreateWindows()函數中:
cs.style|=WS_CLIPCHILDREN|WS_CLIPSIBLINGS;
OpenGL只對WS_CLIPCHILDREN|WS_CLIPSIBLINGS類型窗口有效;
在MyTestView.cpp中,將以下代碼添加到OnDraw()函數中:
wglMakeCurrent(pDC->m_hDC,m_hRC);
DrawScene();//用戶自定義函數,用於繪制三維場景;
wglMakeCurrent(pDC->m_hDC,NULL);
在MyTestView.cpp中,添加成員函數DrawScene():
voidCMyTestView::DrawScene()
{/*繪制三維場景*/}
(4)在MyTestView.h中包含以下頭文件並添加類成員說明:
#include
#include
#include
在CTestView類中的protected:段中添加成員變數聲明:
HGLRCm_hRC;
同時添加成員函數聲明:
DrawScene();
這樣,一個基於OpenGL標準的程序框架已經構造好,用
戶只需在DrawScene()函數中添加程序代碼即可。
建立三維實體模型
三維實體建模是整個圖形學的基礎,要生成高逼真
度的圖像,首先要生成高質量的三維實體模型。
OpenGL中提供了十幾個生成三維實體模型的輔助庫函
數,這些函數均以aux作為函數名的前綴。簡單的模型,如球
體、立方體、圓柱等可以使用這些輔助函數來實現,如
auxWireSphere(GLdoubleradius)(繪制一半徑為radius的網狀球體)。
但是這些函數難以滿足建立復雜三維實體的需要,所以用
戶可以通過其它建模工具(如3DS等)來輔助建立三維實體模
型資料庫。筆者在三維實體的建模過程中採用3DS提供的2D
Shape、3DLofter和3DEditor進行模型的編輯,最後通過將模型數
據以DXF文件格式輸出存儲供應用程序使用。
真實感圖形的繪制
1.定義光照模型和材質
(1)光源。OpenGL提供了一系列建立光照模型的庫函
數,使用戶可以十分方便地在三維場景中建立所需的光照
模型。OpenGL中的光照模型由環境光(AmbientLight)、漫射光
(DiffuseLight)、鏡面反射光(SpecularLight)等組成,同時還可設
置光線衰減因子來模擬真實的光源效果。
例如,定義一個黃色光源如下:
GlfloatLight_position[]={1.0,1.0,1.0,0.0,};
GlfloatLight_diffuse[]={1.0,1.0,0.0,1.0,};
glLightfv(GL_LIGHT0,GL_POSTTION,light_position);//定義光源位置
glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse);//定義光源漫射光
光源必須經過啟動後才會影響三維場景中的實體,可以通過以下指令使光源有效:<
glEnable(LIGHTING);//啟動光照模型;
glEnable(GL_LIGHT0);//使光源GL_LIGHT0有效;
OpenGL中一共可以定義GL_LIGHT0~GL_LIGHT7八個光源。
(2)材質。OpenGL中的材質是指構成三維實體的材料在
光照模型中對於紅、綠、藍三原色的反射率。與光源的定義
類似,材質的定義分為環境、漫射、鏡面反射成分,另外還
有鏡面高光指數、輻射成分等。通過對三維實體的材質定義
可以大大提高應用程序所繪制的三維場景的逼真程度。例
如:
/*設置材質的反射成分*/
GLfloatmat_ambient[]={0.8,0.8,0.8,1.0};
GLfloatmat_diffuse[]={0.8,0.0,0.8,1.0};/*紫色*/
GLfloatmat_specular[]={1.0,0.0,1.0,1.0};/*鏡面高光亮紫色*/
GLfloatmat_shiness[]={100.0};/*高光指數*/
glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambient);/*定義環境光反射率*/
glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse);/*定義漫射光反射率*/
glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular);/*定義鏡面光反射率*/
glMaterialfv(GL_FRONT,GL_SHINESS,mat_shiness);/*定義高光指數*/
(3)材質RGB值與光源RGB值的關系。OpenGL中材質的顏色
與光照模型中光源的顏色含義略有不同。對於光源,R、G、B
值表示三原色在光源中所佔有的比率;而對於材質定義,R、
G、B的值表示具有這種材質屬性的物體對於三原色的反射
比率,場景中物體所呈現的顏色與光照模型、材質定義都相
關。例如,若定義的光源顏色是(Lr,Lg,Lb)=(1.0,1.0,1.0)(白光),
物體的材質顏色定義為(Mr,Mg,Mb)=(0.0,0.0,0.8),則最終到達人
眼的物體顏色應當是(Lr*Mr,Lg*Mg,Lb*Mb)=(0.0,0.0,0.8)(藍色)。
2.讀取三維模型數據
為了繪制三維實體,我們首先必須將預先生成的三
維實體模型從三維實體模型庫中讀出。下圖描述了讀取三
維實體模型的流程。
3.三維實體繪制
由於3DS的DXF文件中對於三維實體的描述是採用三角
形面片逼近的方法,而在OpenGL函數庫中,提供了繪制三角形
面片的方法,所以為三維實體的繪制提供了方便。以下提供
了繪制三角形面片的方法:
glBegin(TRANGLES);//定義三角形繪制開始
glVertexf((GLfloat)x1,(GLfloat)y1,(GLfloat)z1);//第一個頂點
glVertexf((GLfloat)x2,(GLfloat)y2,(GLfloat)z2);//第二個頂點
glVertexf((GLfloat)x3,(GLfloat)y3,(GLfloat)z3);//第三個頂點
glEnd();//繪制結束
為了提高三維實時動畫的顯示速度,我們利用了
OpenGL庫中的顯示列表(DisplayList)的功能,將三維場景中的實
體分別定義為單獨的顯示列表,預先生成三維實體。在圖形
顯示時,只需調用所需的顯示列表即可顯示相應的三維實
體,而不需要重新計算實體在場景中的坐標,避免了大量的
浮點運算。在調用顯示列表前所作的旋轉、平移、光照、材
質的設定都將影響顯示列表中的三維實體的顯示效果。具
體實現演算法如下:
for(ObjectNo=0;ObjectNo<實體個數;ObjectNo++)
{
glNewList(ObjectNo,GL_COMPILE);//創建第ObjectNo個實體的顯示列表
for(Fac
OpenGL是近幾年發展起來的一個性能卓越的三維圖形標准,它是在SGI等多家
世界聞名的計算機公司的倡導下,以SGI的GL三維圖形庫為基礎制定的一個通
用共享的開放式三維圖形標准。目前,包括Microsoft、SGI、IBM、DEC、SUN、
HP等大公司都採用了OpenGL做為三維圖形標准,許多軟體廠商也紛紛以OpenGL
為基礎開發出自己的產品,其中比較著名的產品包括動畫製作軟體Soft Image
和3D Studio MAX、模擬軟體Open Inventor、VR軟體World Tool Kit、CAM軟
件ProEngineer、GIS軟ARC/INFO等等。值得一提的是,隨著Microsoft公司在
Windows NT和最新的Windows 95中提供了OpenGL標准及OpenGL三維圖形加速卡
(如北京黎明電子技術公司的AGC-3D系列三維圖形加速卡)的推出,OpenGL將
在微機中有廣泛地應用,同時也為廣大用戶提供了在微機上使用以前只能在高
性能圖形工作站上運行的各種軟體的機會。
OpenGL實際上是一個開放的三維圖形軟體包,它獨立於窗口系統和操作系統,
以它為基礎開發的應用程序可以十分方便地在各種平台間移植;OpenGL可以
與Visual C++緊密介面,便於實現機械手的有關計算和圖形演算法,可保證算
法的正確性和可靠性;OpenGL使用簡便,效率高。它具有七大功能:
1) 建模 OpenGL圖形庫除了提供基本的點、線、多邊形的繪制函數外,還提
供了復雜的三維物體(球、錐、多面體、茶壺等)以及復雜曲線和曲面
(如Bezier、Nurbs等曲線或曲面)繪制函數。
2) 變換 OpenGL圖形庫的變換包括基本變換和投影變換。基本變換有平移、
旋轉、變比鏡像四種變換,投影變換有平行投影(又稱正射投影)和透
視投影兩種變換。其變換方法與機器人運動學中的坐標變換方法完全一
致,有利於減少演算法的運行時間,提高三維圖形的顯示速度。
3) 顏色模式設置 OpenGL顏色模式有兩種,即RGBA模式和顏色索引(Color Index)。
4) 光照和材質設置 OpenGL光有輻射光(Emitted Light)、環境光
(Ambient Light)、漫反射光(Diffuse Light)和鏡面光(Specular Light)。
材質是用光反射率來表示。場景(Scene)中物體最終反映到人眼的顏色是光
的紅綠藍分量與材質紅綠藍分量的反射率相乘後形成的顏色。
5) 紋理映射(Texture Mapping) 利用OpenGL紋理映射功能可以十分逼真
地表達物體表面細節。
6) 點陣圖顯示和圖象增強 圖象功能除了基本的拷貝和像素讀寫外,還提供
融合(Blending)、反走樣(Antialiasing)和霧(fog)的特殊圖象效果處理。
以上三條可是被模擬物更具真實感,增強圖形顯示的效果。
7) 雙緩存(Double Buffering)動畫 雙緩存即前台緩存和後台緩存,簡而言
之,後台緩存計算場景、生成畫面,前台緩存顯示後台緩存已畫好的畫面。
此外,利用OpenGL還能實現深度暗示(Depth Cue)、運動模糊(Motion Blur)等
特殊效果。從而實現了消隱演算法。
⑦ "OpenGL是個定義了一個跨編程語言、跨平台的編程介面",其中的跨語言和平台如何實現
opengl實現的是3維轉2維的高速軟體演算法,支持opengl的顯卡指,硬體電路實現了其中的部分演算法以加速運算
代碼都是c++的,沒有調用win32平台的api,當然可以跨平台了
⑧ 用OpenGL實現一個光線跟蹤演算法,場景自由構建,也可以是教程,但是必須有代碼,郵箱[email protected]
OpenGL光線追蹤的代碼很多。你自己到C3DN論壇(中國3D技術開發社區)里下載吧。。。挺多的。google搜索「C3DN」,論壇里的「資源下載」版塊有很多源代碼,而且有運行效果截圖。
⑨ OpenGL是什麼
OpenGL是個專業的圖形程序介面,是一個功能強大,調用方便的底層圖形庫。 高性能圖形演算法行業標准 OpenGL™ 是行業領域中最為廣泛接納的 2D/3D 圖形 API, 其自誕生至今已催生了各種計算機平台及設備上的數千優秀應用程序。OpenGL™ 是獨立於視窗操作系統或其它操作系統的,亦是網路透明的。在包含CAD、內容創作、能源、娛樂、游戲開發、製造業、制葯業及虛擬現實等行業領域中,OpenGL™ 幫助程序員實現在 PC、工作站、超級計算機等硬體設備上的高性能、極具沖擊力的高視覺表現力圖形處理軟體的開發。 OpenGL的前身是SGI公司為其圖形工作站開發的IRIS GL。IRIS GL是一個工業標準的3D圖形軟體介面,功能雖然強大但是移植性不好,於是SGI公司便在IRIS GL的基礎上開發了OpenGL。OpenGL的英文全稱是Open Graphics Library,顧名思義,OpenGL便是開放的圖形程序介面。