㈠ D3D游戲編程中音效怎麼加需要什麼頭文件和庫文件
音效卡的技術指標很多,以下是各種具體指標的具體含義。如果您是個專業級的音響發燒友,這些牽涉到聲音質量的具體指標可不能不看。
目錄 [隱藏]
1 S/PDIF
2 采樣位數與采樣頻率
3 復音數
4 動態范圍
5 API介面
6 HRTF
7 ASIO
8 AC-3
9 DLS技術
10 SB1394標准
[編輯] S/PDIF
S/PDIF是SONY、PHILIPS家用數字音頻散拿介面的簡稱,可以傳輸PCM流和Dolby Digital、dts這類環繞聲壓縮音頻信號,所以在音效卡上添加S/PDIF功能的最重大意義就在於讓電腦音效卡具備更加強大的設備擴展能力。S/PDIF技術應用在音效卡上的表現即是音效卡提供了S/PDIF In、S/PDIF Out介面,如果有數字解碼器或者帶有數字音頻解碼的音箱,你就可以使用S/PDIF介面作為數碼音頻輸出,使用外置的DAC(Digital-Analog Converter:數字→模擬轉換器,簡稱數模轉換器)進行解碼,以達到更好的音質。
S/PDIF介面一般有兩種,一種是RCA同軸介面,另一種是TOSLINK光纜介面。其中RCA介面(是非標準的,它的優點是阻抗恆定、有較寬的傳輸帶寬。在國際標准中,S/PDIF需要BNC介面75歐姆電纜傳輸,然而很多廠商由於各種原因頻頻使用RCA介面甚至使用3.5mm的小型立體聲介面進行S/PDIF傳輸。
在多媒體音效卡上,S/PDIF分為輸出和輸入兩種形式,也就是通常所說的S/PDIF OUT和S/PDIF IN。音效卡的S/PDIF OUT主要功能是將來自電腦的數字音頻信號傳輸到各種外接設備。在目前的主流產品中,S/PDIF OUT功能已經非常普及,通常以同軸或者光纖介面的方式做在音效卡主卡或者數字子卡上。而S/PDIF IN在音效卡中主要功能則是接收來自其它設備的PCM信號,最典型的應用就是CD唱片的數字播放。雖然所有CD-ROM都具有CD播放能力,但效果有優劣之分。主要原因在於CD-ROM所採用的DAC品質不同,從而造成了效果上的差異。但如果你的音效卡上擁有一個兩針的S/PDIF IN插口,那麼就可以通過一條兩芯的數字CD信號傳輸線連接到CD-ROM的Audio Digital Out介面。這樣當播放CD唱片的時候,CD上的PCM信號就不經過DAC,而直接被輸出到音效卡上,隨後再由音效卡進行D/A轉換或者通過S/PDIF OUT輸出。一般音效卡CODEC晶元的D/A轉換品質總是好過CD-ROM上的DAC,因此通過S/PDIF技術,CD播放質量就被有效提高了。
[編輯] 采樣位數與采樣頻率
音頻信號是連續的模擬信號,而電腦處理的卻只能是數字信號。因此,電腦要對音頻信號進行處理,首先必須進行模/數(A/D)的轉換。這個轉換過程實際上就是對音頻信號的采樣和量化過程,即把時間上連續的模擬信號轉變為時間上鋒掘握不連續的數字信號,只要在連續量上等間隔的取足夠多的點,就能逼真地模擬出原來的連續量。這個「取點」的過程我們稱為采樣(sampling),采樣精度越高(「取點」越多)數字聲音越逼真。其中信號幅度(電壓值)方向采樣精度,我們稱之為采樣位數(sampling resolution),時間方向的采樣精度稱為采樣頻率(sampling frequency)。
采樣位數指的是每個采樣點所代表音頻信號的幅度。8bit的位數可以描銀慶述256種狀態,而16bit則可以表示65536種狀態。對於同一信號幅度而言,使用16bit的量化級來描述自然要比使用8bit來描述精確得多。其情形就尤如使用毫米為單位進行度量要比使用厘米為單位要精確一樣。一般來說采樣位數越高,聲音就越清析。
采樣頻率是指每秒鍾對音頻信號的采樣次數。單位時間內采樣次數越多,即采樣頻率越高,數字信號就越接近原聲。采樣頻率只要達到信號最高頻率的兩倍,就能精確描述被采樣的信號。一般來說,人耳的聽力范圍在20hz到20Khz之間,因此,只要采樣頻率達到20Khz×2=40Khz時,就可以滿足人們的要求。現時大多數音效卡的采樣頻率都已達到44.1或48Khz,即達到所謂的CD音質水平了。
[編輯] 復音數
在各類音效卡的命名中,我們經常會發現諸如64、128之類的數字。有些用戶乃至商家將它們誤認為是64位、128位音效卡,是代表采樣位數。其實64、128代表的只是此卡在MIDI合成時可以達到的最大復音數。所謂"復音"是指MIDI樂曲在一秒鍾內發出的最大聲音數目。波表支持的復音值如果太小,一些比較復雜的MIDI樂曲在合成時就會出現某些聲部被丟失的情況,直接影響到播放效果。復音越多,音效越逼真,但這與采樣位數無關,如今的波表音效卡可以提供128以上的復音值。
另外需要注意的是"硬體支持復音"和"軟體支持復音"之間的區別。所謂"硬體支持復音"是指其所有的復音數都由音效卡晶元所生成,而"軟體支持復音"則是在"硬體復音"的基礎上以軟體合成的方法,加大復音數,但這是需要CPU來帶動的。眼下主流音效卡所支持的最大硬體復音為64,而軟體復音則可高達1024。
[編輯] 動態范圍
動態范圍指當聲音的增益發生瞬間態突變,也就是當音量驟然或突然毫米波時,設備所有名承受的最大變化范圍。這個數值越大,則表示音效卡的動態范圍越廣,就越能表現出作品的情緒和起伏。一般音效卡的動態范圍在85dB左右,能夠做到90dB以上動態范圍的音效卡是非常好的音效卡了。
==Wave音效與MIDI音樂==
WAVE音效合成與MIDI音樂的合成是音效卡最主要的功能。其中WAVE音效合成是由音效卡的ADC模數轉換器和DAC數模轉換器來完成的。模擬音頻信號經ADC轉換後為數字音頻後,以文件形式存放在磁碟等介質上,就成為聲音文件。這類文件我們稱之為wave form文件,通常以.wav為擴展名,因此也稱為wav文件。WAVE音效可以逼真地模擬出自然界的各種聲音效果。可惜的是wav文件需要佔用很大的貯存空間,也正是這個缺點,造就了MP3的成長。
MIDI,即樂器數字化介面,是一種用於電腦與電子樂器之間進行數據交換的通信標准。MIDI文件(通常以.mid為文件擴展名)記錄了用於合成MIDI音樂的各種控制指令,包括發聲樂器、所用通道、音量大小等。由於MIDI文件本身不包含任何數字音頻信號,因而所佔的貯存空間比wav文件要小得多。MIDI文件回放需要通過音效卡的MIDI合成器合成為不同的聲音,而合成的方式有FM(調頻)與Wave table(波表)兩種。
大多數廉價的音效卡都採用的FM合成方式,FM合成是通過振盪器產生正弦波,然後再疊加成各種樂器的波形。由於振盪器成本較高,即使是OPL3這類高檔的FM合成器也只提供了4個振盪器,僅能產生20種復音,所以發出音樂聽起來生硬呆板,帶有明顯的人工合成色彩。與FM合成不同,波表合成是採用真實的聲音樣本進行回放。聲音樣本記錄了各種真實樂器的波形采樣,並保存在音效卡上的ROM或RAM中(要分辨一塊音效卡是否波表音效卡,只需看卡上有沒有ROM或RAM存儲器即可)。目前中高檔音效卡大都採用了波表合成技術。
==輸出信噪比==
「輸出信噪比」是衡量音效卡音質的一個重要因素,其概念為——輸出信號電壓與同時輸出的噪音電壓的比例,單位是分貝。這個數值越大,代表輸出時信號中被摻入的噪音越小,音質就越純凈。音效卡作為電腦的主要輸出音源,對信噪比要求是相對較高的。由於聲音通過音效卡輸出,需要通過一系列復雜的處理,所以決定一塊音效卡信噪比大小的因素也有很多。由於計算機內部的電磁輻射干擾很嚴重,所以集成音效卡的信噪比很難做到很高,一般其的信噪比在80dB左右。PCI音效卡一般擁有較高的信噪比(大多數可以輕易達到90dB),有的高達195dB以上。較高的信噪比保證了聲音輸出時的音色更純,可以將雜音減少到最低限度。而音色的好壞則取決於產品所選用的音效晶元和卡的做工。如果可能的話,購買音效卡前最好先進行試聽,如果實在沒有得試聽的話,可以多留意周圍媒體對它的評價,或許對你的選購有一些幫助。
[編輯] API介面
API就是是編程介面的意思,其中包含了許多關於聲音定位與處理的指令與規范。它的性能將直接影響三維音效的表現力,主要有下面幾種:
Direct Sound 3D
Direct Sound 3D,是微軟公司提出的3D效果定位技術,它最大特點就是硬體無關性,在音效卡出現初期,許多音效卡晶元沒有自己的硬體3D音效處理能力,都是使用這種Direct Sound 3D來模擬出立體聲。它所產生的效果均由CPU通過即時運算產生,比較耗費CPU資源,所以,此後推出的音效卡都擁有了一個所謂的「硬體支持DS3D」能力。如果你在選購音效卡時聽銷售商說音效卡支持D3D多麼好的話,千萬不要就輕信這是一塊好音效卡,其實際聽覺效果要看音效卡自身採用的HRTF演算法能力的強弱而定。
A3D
A3D是Aureal公司開發的一項專利技術。它是在Direct Sound 3D的API介面基礎上發展起來的。A3D最大特點是能以精確定位(Positional)的3D音效增加新一代游戲軟體交互的真實感,這就是通常所說的3D定位技術。A3D目前有1.0、2.0和A3D3.0三個版本。1.0版包括A3D Surround和A3D Interactive兩大應用領域,特別強調在立體聲硬體環境下就可以得到真實的聲場模擬,A3D 1.0中同時間內只能處理8個音源,取樣頻率是22kHz,AUREAL音效卡中的AU8820晶元使用的就是這種技術。2.0則是在1.0基礎上加入了聲波追蹤技術,進一步加強了性能,A3D 2.0同時則可以處理16個音源,取樣頻率已達48kHz,它是當今定位效果最好的3D音頻技術之一,AU8830晶元就支持這種技術。至於3.0版本早就被提出了,不過由於Aureal公司已經被創新收購,A3D3.0的前途還是個未知數。
由於Aureal的A3D技術在3D定位及交互性聲音處理(這是兩大關鍵部分)方面具有優勢,加之支持Direct Sound 3D硬體加速,因而很多游戲開發商都是基於A3D進行3D游戲開發的。不過由於實現起來成本頗高,因而並不是每塊PCI音效卡都支持該技術。
A3D Surround
A3D Surround吸收了A3D技術和環繞聲解碼技術(如Dolby的 ProLogic和AC-3)之精華,突出特點是只使用兩只普通音箱(或一副耳機)在環繞三維空間中,進行聲音的精確定位(也就是說可產生與五個「虛擬音箱」相同的效果)。當然,這五組音頻流並不像傳統的「家庭影院」那樣需要用5個實際的音箱進行回放,它實際上只是經過A3D Surround處理後用兩個音箱播放出來的。這一技術被杜比實驗室授予「Virtual Dolby」認證。
EAX
EAX是由創新公司在其SB LIVE!系列音效卡中提出的標准,全名為Environmental Audio Extension,即環境音效。EAX是建立在DS3D上的,只是在後者的基礎上增加了幾種獨有的聲音效果命令。EAX的特點是著重對各種聲音在不同環境條件下的變化和表現進行渲染,但對聲音的定位能力不如A3D,EAX建議用戶配備4聲道環繞音箱系統。現在支持EAX2的主要就是EMU10K1和MU10K2晶元,它們分別為創新著名的SB Live!和Audigy系列音效卡所採用,該晶元同時還支持A3D1、HRTF等技術,是目前流行兼容音效卡中的精品。
註:目前,A3D和EAX是API介面中的兩大流派,你在購買的時候,最好弄清楚選擇的音效卡支持哪些音效,所支持的版本是多少,是軟體模擬還是硬體支持,這些都是十分關鍵的。
[編輯] HRTF
HRTF是Head Related Transfer Function的縮寫,中文意思是「頭部對應傳輸功能」,它也是實現三維音效比較重要的一個因素。簡單講,HRTF是一種音效定位演算法,它的實際作用在於用數字和演算法欺騙我們的耳朵,使我們認為自己處了一個真實的聲音環境中。3D定位是通過音效卡晶元採用的HRTF演算法實現的,定位效果也是由HRTF演算法決定的。象Aureal和Creative這樣的大公司,他們既能夠開發出強大指令集規范,同時也可以開發出先進的HRTF演算法並集成在自己的晶元中。當然也有一些廠商專門出售或者為音效卡訂定各種各樣的HRTF演算法,比較有名的就要算Sensaura 3D和Qsound。Sensaura 3D是由CRT公司提供的。Sensaura,支持包括A3D 1.0和EAX、DS3D在內的大部分主流3D音頻API,此技術主要運用於ESS、YAMAHA和CMI的音效卡晶元上。而QSound開發的Q3D,主要包括三個部分,第一部分是3D音效和聽覺環境模型,第二部分是立體音樂加強,第三個部分是虛擬的環境音效,可以提供一個與EAX相仿的環境模擬功能,但效果還比較單一,與Sensaura大而全的性能指標相比稍遜一籌。此外C-MEDIA在CMI8738上則使用自己的HRTF演算法,稱為C3DX,支持EAX和DS3D,實際效果很一般。
==IAS== IAS是Interactive Around-Sound的縮寫,它是 EAR(Extreme Audio Reality)公司在開發者和硬體廠商的協助下開發出來的專利音頻技術,該技術可以滿足測試系統硬體、管理所有的音效平台的需求。開發者只需寫一套音效代碼,所有基於Windows 95/98/2000的音頻硬體將通過同樣的編程介面來獲得支持。IAS為音效設計者管理所有的音效資源,提供了DS3D(Direct Sound 3D)支持。此外,它的音效輸出引擎會自動配置最佳的3D音頻解決方案,其中有四信道模式的音效卡將是首要的目標。而DS3D 可以在現有的雙喇叭平台上獲得支持。
[編輯] ASIO
ASIO是Audio Stream Input Output的縮寫,可翻譯為「音頻流輸入/輸出」的意思。通常這是專業音效卡或高檔音頻工作站才會具備的性能。採用ASIO技術可以減少系統對音頻流信號的延遲,增強音效卡硬體的音頻處理能力。同樣一塊音效卡,假設使用 MME 驅動時的延遲時間為750毫秒,那麼當換成ASIO驅動後延遲量就有可能會降低到40毫秒以下。
但是並非所有的音效卡都能夠支持ASIO。ASIO不僅定義驅動標准,還必須要求音效卡主晶元的硬體支持才能夠得以實現。只有那些價格高貴的專業音效卡,在設計中才會考慮到對ASIO的支持。我們常所用的音效卡,包括創新過去的SB Live!系列都屬於民用卡的范疇,沒有配備了ASIO驅動的。不過創新SoundBlaster Audigy已經開始全面支持ASIO技術。
註:SB Live!的主晶元EMU10K1本身支持ASIO,只是這一性能並未在創新自帶的LiveWare! 3.0驅動中體現出來。因此,當你將SB Live!的驅動程序換成採用同樣規格設計的E_mu APS錄音卡的驅動後,音頻處理軟體就會報告說找到ASIO!另外CMI8738本身也是具備ASIO的潛質,只不過至今還沒有合適的驅動將其發揮出來。
[編輯] AC-3
AC-3是完全數字式的編碼信號,所以正式英文名為「Dolby Digital」,是由著名的美國杜比實驗室(Dolby Laboratories)。Dolby的一個環繞聲標准。AC-3規定了6個相互獨立的聲軌,分別是——前置兩聲道,後置環繞兩聲道,一個中置聲道和一個低音增強聲道。其中前置、環繞和中置五個聲道建議為全頻帶揚聲器,低音炮負責傳送低與80Hz的超重低音。早期的AC-3最高只能支持5.1聲道,在經過不斷的升級改進,目前AC-3的6.1 EX系統增加了後部環繞中置的設計,讓用戶可以體驗到更加精準的定位。
對於AC-3,目前通過硬體解碼和軟體解碼這兩種方式實現。硬體解碼是通過支持AC-3信號傳輸音效卡中的解碼器,將聲間進行5.1聲道分離後通過5.1音箱輸出。軟體解碼就是通過軟體來進行解碼的,(如DVD播放軟體WinDVD、PowerDVD都可以支持AC-3解碼,當然音效卡也必須支持模擬六聲道輸出。),不過這種工作方式比較大的缺陷在於解碼運算需要通過CPU來完成,會增加了系統負擔,而且軟解碼的定位能力依然較遜色,聲場相對較散。
雖然軟體模擬AC-3存在著缺陷,其成本相對低廉,目前中低檔的音效卡大都是使用這種方式。
[編輯] DLS技術
DLS全稱為"Down Loadable Sample",意為「可供下載的采樣音色庫」。其原理與軟波表頗有異曲同工之處,也是將音色庫存貯在硬碟中,待播放時調入系統內存。但不同點在於運用DLS技術後,合成MIDI時並不利用CPU來運算,而依靠音效卡自己的音頻處理晶元進行合成。其中原因在於PCI音效卡的數據寬頻達到133Mb/秒,大大加寬了系統內存與音效卡之間的傳輸通道,PCI音效卡就可使用先進的DLS技術,將波表音色儲存於硬碟中,通過音效卡晶元處理,在播放MIDI時調入內存。從而既免去了傳統ISA波表音效卡所要配備的音色庫內存,又大大降低了播放MIDI時的CPU佔用率。這樣不但提供了良好的MIDI合成效果又可免去ISA波表音效卡上必須配備的音色庫內存,而且這種波表庫可以隨時更新,並利用DLS音色編輯軟體進行修改,這都是傳統波表所無法比擬的優勢。
[編輯] SB1394標准
SB1394是創新公司為達到高速數字音頻傳送(約400Mbps)所提出的IEEE1394兼容標准。創新的SB1394標準保證通過SB1394連接的1394介面設備可發揮最大效能,傳輸速度高達400Mbps,使主機與外設之間大文件的高速傳送成為可能。Sound Blaster Audigy2音效卡就內置SB1394,可通過IEEE 1394標准介面外接設備如DV攝象機等,並可連接63台電腦進行低延遲的聯網游戲
㈡ d3d到底是干什麼用的。除了游戲編程還可以干什麼呢謝謝啦~
d3d是微軟的DirectX的一個組成部分,是3D圖像繪制的硬旅絕件加速的編程介面,程序調用手鎮手畢嫌這個介面,顯卡從硬體上實現這個介面,所以3d圖像能高速繪制。DirectX還有其它許多組件,如DirectDraw用於2D繪制,DirectSound DirectMusic用於音頻硬體加速,還有DirectPlay用於視頻編程,等等,DirectX主要用於高效多媒體軟體,游戲應用較多,其它如視頻播放器,音樂播放器,畫圖軟體都會應用它,像建模軟體要加速顯示,也會用D3d
㈢ 請教《3D游戲編程大師技巧》的難度和實用性
我先看了《windows游戲編程大師技巧》,這本書講了游戲設計的方方面面,但主要講的是2D方面的知識,包括物理設計、AI設計,看完對製作游戲的整體思想有了一個比較全面的認識,看完這一冊基本上能自己製作一個2D游戲了,因為這本書結束就完成了一個小型2D游戲引擎的編寫。看完這本後就接著看《3D游戲編程大師技巧》,這本是第一本的進化版,但講游戲相關的知識比較少,因為第一冊已經講得差不多了,這一冊主要講的是3D方面的知識,也就是圖形學的知識,DX的內容幾乎沒有,主要是在第一冊的2D引擎基礎上添加上了3D圖形引擎,也就是說這本書主要講如何設計一個類似於D3D的圖形引擎,這本書我看了一半多,內容還是蠻好理解,一步步實現了一個簡單的3D引擎。現在在看龍書,如果你先看了《3D游戲編程大師技巧》再看龍書的話會發現雖然第一次接觸D3D,但會感覺D3D裡面的東西似曾相識,因為裡面的原理就在《3D游戲編程大師技巧》這里。
㈣ 游戲編程要學什麼
學習游戲編程可以選擇去機構學,也可以自己找資料自學。
主要學的內容如下:
1.游戲程序設計:C++程序設計入門;基本數據類型和輸入輸出;流程式控制制語句;數組、指針和引用、函數;程序結構和書寫規;范結構體和聯合體、類;繼承與多態;異常處理與程序調試。
2.演算法與數據結構:演算法分析;數據結構;基本演算法;STL的概念與使用;靜態庫與動態庫;XML庫的使用。
3.Win32程序設計:Windows程序入門;Windows消息;GDI繪圖游戲工具與MFC;網路編程基礎。
4.游戲數學和智能應用:游戲中的坐標系;矢量、矩陣;幾何碰撞;物理模擬;人工智慧與尋路演算法。
5.2D游戲技術與應用:2D游戲技術概論;游戲地圖系統;GUI系統;戰斗系統設計;任務系統;優秀的聲音引擎BASS;Cocos2D-X引擎;Box2D物理引擎。
互聯網行業目前還是最熱門的行業,學習IT技能之後足夠優秀是有機會進入騰訊、阿里、網易等互聯網大廠高薪就業的,發展前景非常好,普通人也可以學習。
想要系統學習,你可以考察對比一下開設有IT專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能力,建議實地考察對比一下。
祝你學有所成,望採納。
㈤ 現在學習directx的2D游戲編程是應該學習什麼
1. 使用d3d編寫2d游戲不會降低運行效率, 相反會提升很多. 說個最直接的吧, 從前ddraw的圖片加工都是由cpu處理, 而d3d完全可以由gpu代為處理. 如果是需要像素級別的碰撞檢測, 這個性能提升就是不言而喻的了.
說明: 簡單說下如何使用d3d進行2d編程吧.
1. 創建3d設備.
2. 創建quad陣列用於投影紋理.(簡單一點來說可以先創建一個單位四邊形用於貼圖)
3. 創建符合你要求的正交投影矩陣
4. 將四邊形繪制上backbuffer, 窗口模式一下, 全屏模式swap一下即可. 其中可以通過shader在多重紋理階段創建各種顯示效果.
㈥ 本人是一個老程序員,目前想學習3D編程,請問3D方面的基礎知識可以看哪本書不拘泥於編程語言,求經典。
1、WINDOWS 3D編程
《WINDOWS 3D編程》主要內容:Learn to create 3D graphics for Windows-from programming legend Charles Petzold.Get a focused introction to programming 3D graphics with the Windows Presentation Foundation 3D API. Complementing his book Applications =Code + Markup, award-winning author Charles Petzold builds on XAML essentials, teaching you how to display and animate 3D graphics under the Microsoft .NET Framework 3.0 and Windows VistaTM. You'll get expert guidance and code samples in XAML and Microsoft Visual C#-helping you master the skills you need to create high-fidelity user interfaces.
Discover how to:
Define complex 3D obiects with triangle meshes
Enhance the illumination of 3D surfaces with light and shading effects
Color 3D figures with gradients, bitmaps, and drawings
Add animation with transforms and vertex manipulation
Represent linear, affine, and camera transforms by using matrices
Calculate vector angles, angles of rotation, and axes of rotation
Generate triangle meshes efficiently by using C# code
Express rotation by using quaternion computation
Provide a user interface for manipulating and drawing 3D figures
目錄
--------------------------------------------------------------------------------
1 Lights! Camera! Mesh Geometries!
Sorting Out the Classes
2 Transforms and Animation
3 Axis/Angle Rotation
4 Light and Shading
SpotLight and PointLight
5 Texture and Materials
6 Algorithmic Mesh Geometries
7 Matrix Transforms
8 Quaternions
9 Applications and Curiosa
/******************************************************************************************************************/
2、java 3d編程實踐:網路上的三維動畫
目錄:
第1章 全世界都能看到的三維動畫
1. 1 初識java 3d
1. 1. 1 網路時代需要java 3d
1. 1. 2 java 3d是什麼
1. 1. 3 java 3d的應用場合舉例
1. 2 java 3d運行及開發環境的安裝
1. 2. 1 最新版java 3d的安裝
1. 2. 2 老版本的安裝步驟
1. 3 體驗java 3d編程
1. 3. 1 第一個java 3d程序:hello
1. 3. 2 java 3d的編程思想
1. 4 在網上發布java 3d程序
1. 5 java 3d的網路資源和學習資料
1. 5. 1 主要網站
1. 5. 2 各種文檔
1. 5. 3 軟體資源
第2章 基本形體的生成
2. 1 基本立體形體的生成
2. 1. 1 從一個簡單的程序說起
2. 1. 2 創建場景圖
2. 1. 3 高層java 3d類
2. 1. 4 編寫java 3d程序的一般步驟
2. 1. 5 激活和編譯
2. 1. 6 內容子圖的創建
2. 1. 7 mycone程序中使用的java 3d類
2. 1. 8 幾何體工具類
2. 1. 9 高級主題:基本幾何體
2. 1. 10 能力和性能
2. 2 點. 線. 面的生成
2. 2. 1 幾何體類
2. 2. 2 點的生成
2. 2. 3 直線的生成
2. 2. 4 面的生成
2. 3 曲面的可視化
2. 4 2d和3d文本的生成
2. 4. 1 2d文本的生成
2. 4. 2 3d文本的生成
2. 5 appearance. shape3d和bounds對象的使用
2. 5. 1 appearance對象
2. 5. 2 shape3d對象
2. 5. 3 bounds對象
第3章 形體的組合
3. 1 形體的分組
3. 1. 1 group對象
3. 1. 2 branchgroup對象和orderedgroup對象
3. 1. 3 decalgroup對象
3. 1. 4 switch對象
3. 1. 5 sharedgroup對象
3. 2 幾何變換
3. 2. 1 transformg
/*********************************************************************************************************/
3、Directx 3D 游戲編程實用教程
目錄
--------------------------------------------------------------------------------
第一篇 d游戲編程基礎
第1章 windows編程基礎
1.1 簡單的windows應用程序
1.1.1 創建windows應用程序項目
1.1.2 配置、生成及運行項目
1.2 windows應用程序結構
1.2.1 數據類型
1.2.2 入口函數
1.2.3 注冊窗口類
1.2.4 創建並顯示窗口
1.3 windows消息機制
1.3.1 消息隊列
1.3.2 消息循環
1.3.3 消息處理
1.4 匈牙利命名法
1.4.1 類型和常量的命名
1.4.2 變數的命名
1.4.3 函數和參數的命名
1.4.4 類的命名
1.5 本章小結
第2章 direct3d編程基礎
2.1 directx概述
2.1.1 directx的發展過程
2.1.2 directx的組成部分
2.1.3 direct3d與com
2.1.4 direct3d介面對象
2.2 direct3d渲染流水線
2.2.1 渲染流水線
2.2.2 靈活頂點格式
2.2.3 d3d中的顏色
2.2.4 d3d中的圖元
2.3 direct3d程序結構
2.3.1 簡單的direct3d應用程序
2.3.2 創建direct3d介面對象
2.3.3 獲取硬體設備信息
2.3.4 創建direct3d設備介面
2.3.5 開始direct3d圖形繪制
2.3.6 結束並清理對象資源
2.4 頂點緩存
2.4.1 創建頂點緩存
2.4.2 訪問頂點緩存
2.4.3 使用頂點緩存繪制圖形
2.4.4 頂點緩存的繪制示例
2.5 索引緩存
2.5.1 創建索引緩存
2.5.2 訪問索引緩存
2.5.3 使用索引緩存繪制圖形
2.5.4 索引緩存的繪制示例
2.6 direct3d渲染狀態
2.6.1 剔除狀態
2.6.2 著色狀態
2.6.3 填充狀態
2.7 本章小結
第3章 基本的數學基礎
3.1 坐標空間
3.1.1 d笛卡兒坐標系
3.1.2 多坐標系統
3.2 向量
3.2.1 向量的基本概念
3.2.2 向量的基本運算
3.2.3 d3d中的向量
3.3 矩陣
3.3.1 矩陣的基本概念
3.3.2 矩陣的基本運算
3.3.3 矩陣的基本變換
3.3.4 d3d中的矩陣
3.4 平面及射線
3.4.1 平面的定義
3.4.2 點與平面的關系
3.4.3 射線的定義
3.4.4 射線與平面的關系
3.5 空間坐標變換
3.5.1 世界變換
3.5.2 取景變換
3.5.3 投影變換
3.5.4 視口變換
3.6 空間坐標變換示例
3.7 本章小結
第二篇 d游戲圖形渲染
第4章 光照與材質
4.1 光照模型
4.1.1 環境光
4.1.2 漫反射光
4.1.3 鏡面反射光
4.2 光源類型
4.2.1 點光源
4.2.2 方向光
4.2.3 聚光燈
4.3 物體的材質
4.3.1 d3d材質
4.3.2 頂點法線
4.4 光照與材質示例
4.5 本章小結
第5章 紋理映射
5.1 紋理映射基礎
5.1.1 紋理坐標
5.1.2 創建紋理
5.1.3 啟用紋理
5.1.4 創建紋理示例
5.2 紋理過濾
5.2.1 最近點采樣過濾
5.2.2 線性紋理過濾
5.2.3 各向異性過濾
5.2.4 多級漸進過濾
5.2.5 紋理過濾示例
5.3 紋理定址
5.3.1 重復定址
5.3.2 鏡像定址
5.3.3 夾取定址
5.3.4 邊框顏色定址
5.3.5 紋理定址示例
5.4 紋理包裝
5.4.1 紋理包裝原理
5.4.2 紋理包裝示例
5.5 本章小結
第6章 網格模型
6.1 網格模型基礎
6.1.1 網格的子集及屬性
6.1.2 網格的鄰接信息
6.1.3 網格的創建及繪制
6.1.4 創建及繪制網格示例
6.2 網格的優化及克隆
6.2.1 優化網格
6.2.2 克隆網格
6.3 x文件格式分析
6.3.1 模板的定義
6.3.2 常用的模板類型
6.3.3 x文件的結構
6.4 從x文件創建網格
6.4.1 載入網格模型數據
6.4.2 獲取紋理和材質信息
6.4.3 繪制網格模型
6.4.4 讀取x文件示例
6.5 創建漸進網格模型
6.5.1 id3dxpmesh介面
6.5.2 創建並繪制漸進網格
6.5.3 創建漸進網格示例
6.6 d3d中的幾何體
6.7 本章小結
第7章 深度、融合及模板
7.1 深度測試
7.1.1 深度緩存
7.1.2 深度測試
7.1.3 深度測試示例
7.2 融合技術
7.2.1 融合因子
7.2.2 alpha來源
7.2.3 啟用alpha融合
7.2.4 alpha融合示例
7.3 模板技術
7.3.1 模板緩存
7.3.2 模板測試
7.3.3 更新模板緩存
7.4 鏡面效果
7.4.1 鏡面成像原理
7.4.2 實現鏡面效果
7.5 本章小結
第8章 hlsl語言基礎
8.1 hlsl概述
8.1.1 可編程管線
8.1.2 hlsl工作模型
8.2 簡單的hlsl程序
8.2.1 編寫hlsl代碼
8.2.2 hlsl關鍵字和保留字
8.2.3 hlsl預處理指令
8.2.4 輸入、輸出結構
8.2.5 hlsl入口函數
8.3 hlsl基本語法
8.3.1 hlsl中的變數
8.3.2 hlsl中的函數
8.4 d3d與hlsl交互
8.4.1 編譯著色器程序
8.4.2 獲取常量的句柄
8.4.3 設置常量的值
8.5 hlsl程序示例
8.6 本章小結
第9章 著色器與效果
9.1 頂點著色器
9.1.1 創建頂點聲明
9.1.2 使用頂點著色器
9.1.3 頂點著色器示例
9.2 漸變動畫效果
9.2.1 漸變動畫原理
9.2.2 實現漸變動畫
9.3 像素著色器
9.3.1 創建像素著色器
9.3.2 使用像素著色器
9.4 多重紋理混合
9.4.1 hlsl采樣器
9.4.2 多重紋理坐標
9.4.3 啟用多重紋理
9.4.4 多重紋理示例
9.5 效果框架
9.5.1 通道與手法
9.5.2 著色器內置對象
9.5.3 效果中的渲染狀態
9.5.4 創建效果框架
9.5.5 效果中常量的設置
9.5.6 使用效果框架
9.5.7 效果框架示例
9.6 本章小結
第三篇 d游戲輸入控制
第10章 directx輸入控制
10.1 directinput介面
10.2 使用directinput介面
10.2.1 directinput的初始化
10.2.2 創建設備介面對象
10.2.3 設置數據格式
10.2.4 設置協作級別
10.2.5 設置特殊屬性
10.2.6 獲取、輪詢設備
10.2.7 讀取設備數據
10.3 使用directinput處理鍵盤
10.3.1 初始化鍵盤設備介面
10.3.2 獲取輸入的鍵盤數據
10.3.3 鍵盤輸入控制示例
10.4 使用directinput處理滑鼠
10.4.1 在d3d中移動滑鼠
10.4.2 初始化滑鼠設備介面
10.4.3 獲取滑鼠的移動位置
10.4.4 滑鼠輸入控制示例
10.5 使用directinput處理游戲桿
10.5.1 游戲桿及其控制原理
10.5.2 初始化游戲桿設備介面
10.5.3 讀取游戲桿的狀態數據
10.5.4 游戲桿輸入控制示例
10.6 本章小結
第四篇 d游戲應用編程
第11章 攝像機、地形及天空
11.1 虛擬攝像機
11.1.1 攝像機的屬性
11.1.2 攝像機的變換
11.1.3 攝像機的實現
11.1.4 攝像機應用示例
11.2 三維地形系統
11.2.1 地形高度圖
11.2.2 頂點的計算
11.2.3 索引的計算
11.2.4 地形的繪制
11.2.5 地形類的實現
11.2.6 地形繪制示例
11.3 球形天空頂
11.3.1 頂點的計算
11.3.2 索引的計算
11.3.3 天空的繪制
11.3.4 天空類的實現
11.3.5 天空繪制示例
11.4 本章小結
第12章 文字、拾取及碰撞檢測
12.1 字體及文本繪制
12.1.1 繪制2d文本
12.1.2 繪制3d文本
12.1.3 文本繪制示例
12.2 拾取技術
12.2.1 網格外接體
12.2.2 拾取技術原理
12.2.3 拾取應用示例
12.3 碰撞檢測
12.3.1 邊界球碰撞檢測
12.3.2 aabb碰撞檢測
12.3.3 obb樹碰撞檢測
12.3.4 aabb碰撞檢測示例
12.4 本章小結
第13章 骨骼動畫
13.1 x文件中的骨骼信息
13.1.1 骨骼蒙皮信息
13.1.2 骨骼層次信息
13.1.3 模型動畫信息
13.2 載入骨骼動畫數據
13.2.1 擴展結構體
13.2.2 載入x文件
13.2.3 callocatehierarchy類
13.2.4 生成蒙皮網格
13.3 頂點混合技術
13.3.1 頂點混合原理
13.3.2 索引頂點混合
13.4 骨骼動畫的繪制
13.4.1 開啟頂點混合
13.4.2 更新骨骼矩陣
13.4.3 繪制骨骼動畫
13.5 骨骼動畫控制器
13.5.1 使用動畫控制器
13.5.2 平滑過渡動畫集
13.6 骨骼動畫示例
13.7 本章小結
第14章 實時陰影
14.1 平面陰影的原理
14.1.1 點光源平面陰影
14.1.2 方向光平面陰影
14.2 平面陰影的實現
14.2.1 計算陰影矩陣
14.2.2 平面陰影的繪制
14.2.3 平面陰影示例
14.3 體積陰影的原理
14.3.1 模型陰影體
14.3.2 陰影錐的計算
14.4 體積陰影的實現
14.4.1 體積陰影的繪制
14.4.2 體積陰影示例
14.5 陰影貼圖的原理
14.6 本章小結
第15章 廣告牌技術與粒子系統
15.1 廣告牌技術
15.1.1 廣告牌的原理
15.1.2 廣告牌的實現
15.1.3 廣告牌示例
15.2 粒子系統
15.2.1 粒子系統的原理
15.2.2 粒子系統的實現
15.2.3 粒子系統的更新
15.2.4 粒子系統的繪制
15.3 粒子系統示例
15.3.1 煙花示例
15.3.2 噴泉示例
15.4 本章小結
第16章 霧化及lod地形
16.1 霧化效果
16.1.1 霧化混合因子
16.1.2 頂點霧化
16.1.3 像素霧化
16.1.4 范圍霧化
16.2 lod地形原理
16.2.1 lod四叉樹演算法
16.2.2 lod地形的實現
16.2.3 節點剔除原理
16.2.4 節點簡化准則
16.2.5 地形裂縫的處理
16.2.6 地形的更新及繪制
16.3 lod地形示例
16.4 本章小結
第五篇 d游戲音頻輸出
第17章 direct3d音頻控制
17.1 音頻文件格式
17.1.1 音頻的基本概念
17.1.2 wav音頻格式
17.1.3 midi音頻格式
17.1.4 mp3音頻格式
17.2 使用directsound處理音頻
17.2.1 directsound的結構
17.2.2 directsound的初始化
17.2.3 directsound音頻緩沖
17.2.4 向緩沖區中寫入數據
17.2.5 播放聲音及音頻控制
17.2.6 用directsound反饋信息
17.2.7 directsound應用示例
17.3 使用directmusic處理音頻
17.3.1 directmusic的結構
17.3.2 開始使用directmusic
17.3.3 載入、操作midi段
17.3.4 directmusic應用示例
17.4 使用directshow處理音頻
17.4.1 directshow的工作原理
17.4.2 directshow的初始化
17.4.3 載入流媒體數據
17.4.4 控制流媒體的播放
17.4.5 directshow應用示例
17.5 本章小結
第六篇 d游戲網路通信
第18章 direct3d網路控制
18.1 了解網路互聯
18.1.1 網路會話模型
18.1.2 定址與通信協議
18.2 directplay概述
18.2.1 創建和管理會話
18.2.2 directplay傳輸協議
18.2.3 directplay網路對象
18.2.4 玩家與游戲大廳
18.3 客戶/服務會話
18.3.1 初始化網路對象
18.3.2 選擇服務提供者
18.3.3 使用directplay地址
18.3.4 建立客戶/服務會話
18.3.5 發送、接收數據
18.3.6 創建並使用分組
18.3.7 結束及終止會話
18.4 游戲大廳的支持
18.4.1 游戲大廳的結構
18.4.2 實現游戲大廳客戶端
18.4.3 實現支持大廳的程序
18.5 客戶/服務會話示例
18.5.1 創建服務端程序
18.5.2 創建客戶端程序
18.6 本章小結
附 錄
附錄a directx9 sdk的安裝與配置
a.1 安裝directx
a.2 配置開發環境
a.3 瀏覽directx示例
附錄b dxut程序框架介紹
b.1 創建dxut項目
b.2 dxut框架的初始化
b.3 創建應用程序窗口
b.4 創建direct3d設備
b.5 dxut的事件處理
b.5.1 框架事件
b.5.2 設備事件
b.5.3 消息事件
b.6 dxut的錯誤處理
㈦ 游戲編程用什麼語言
問題一:現在的游戲是什麼語言工具開發的? LS說的不錯,底層還是得學C++,但是單就游戲開發(不是游戲引擎開發)來說,現在基本使用游戲飢擎,而游戲引擎最重要的目的就是整合常用邏輯觸發事件,減少手動寫代碼。就拿UDK來說,簡單邏輯事件可以用它自帶的ki *** et可視化編程做,進入這個界面,就跟畫UML類圖似的,方塊之間只需要連連線一個簡單事件就出來了。
問題二:大型單機游戲用什麼語言開發的? 大型游戲用什麼語言都可以寫,寫游戲做大型軟體,語言只是一個載體.關鍵在於開發包的性能.
比如寫3D游戲的時候,我們可以用VC的框架,C++語言的語法,再結合圖形驅動開發包,比如DirectX和OpenGL,直接寫硬體.在一些需要精確控制內存的模塊,我們甚至要嵌入匯編程序.
很難想像現在的軟體純粹用一種高級語言來完成,那樣對用戶的內存將成為一個大的無底洞.
問題三:編程用什麼語言最好? 答:沒有什麼編程語言是最好的!各種編程語言都有自身的特色,並且有自己適用的領域,至於最終學習哪種,全靠你興趣和未來發展的實際需要。對游戲編程來說,C/C++確實是一個非常不錯的開始,因為大多數游戲都用它們編寫。並且,C/C++是當今使用時間最長且使用最廣泛的編程語言,所以你可以找到大量學習資料和幫助。C語言並不是一切語言的基礎,不過學好C語言對理解其它語言很有幫助。在學習上,你先學C或C++都無所謂,因為只要學了一個,再學另外一個就很容易。但是,如果你先學C++,請保證在學習面向對象編程之前能理解和使用過程編程(等編程熟練再去學習),這里C是過程性語言,C++是面向對象語言。如果你剛開始學習C/C膽+發現太難,那可先學一個簡單編程語言,如Basic或Pascal。但是我認為只要堅持努力,而且有好的資料,直接學C/C++應該沒有太大問題。想學好編程語言,最好的方法是去學校上課,沒條件就得盡量去書店選擇一些經典的教材(如清華出版社翻譯的國外經典教材)。
問題四:編程游戲需要什麼語言 PC平台上開發 開發游戲可以使用一些現成的平台,例如cocos-2d.可以使用C++或者lua進行開發。
這是一個跨平台的開發架構,同一套代碼可以在不同的設備上運行。
詳細內容可以去cocos-2d的相關網站進行查詢。
問題五:一般的游戲都是用什麼語言開發的 一般的大型游戲開發絕不是用某種語言這么單純的問題。一個大型游戲的開發需要龐大的團隊使用各種各樣的語言和工具來完成。總結一下主要有C/C++,匯編語言,著色器語言,腳本語言,高效的開發語言C#或Java。
首先一般的游戲開發架構培棚(Windows)從底到頂一般是Direct X?――游戲引擎――游戲。
Direct X?相當於所有顯卡的一個統一介面,為游戲提供一個利用硬體渲染的編程模型,但Direct X?介面為了追求高性能功能非常單純和鬆散,不利於游戲的高效開發。此時就需要根據游戲特點對其進行適當的取捨和封裝,實現一組更高抽象的游戲開發介面和框架,可以理解成游戲引擎中的圖形引擎。這部分的開發一般使用的語言是C/C++和少量的匯編語言。
至於游戲引擎是一個非常復雜的功能聚合體,所有的游戲開發工作都是在之上進行的。包括圖形引擎,音頻引擎,碰撞引擎,藝術資源管理,腳本引擎等等。到此為止幾乎還沒有涉及到你所說的游戲開發。
首先在圖形渲染方面,例如光照陰影處理等等,現代顯卡一般是通過可編程著色器實現對圖形效果的控制,所採用的編程語言一般是一些著色器語言,例如Direct X?採用的HLSL,OpenGL使用的GLSL等等,語法類似C語言,游戲執行時被編譯載入到顯卡上,在實現硬體渲染速度的同時又實現了編程的靈活性。
大型游戲開發的絕大部分工作其實都是扮散在編寫游戲腳本,腳本是大型游戲得以如此高速開發和發布的主要原因。腳本化的開發讓游戲開發擺脫了硬編碼的種種弊端,讓游戲內容可以輕易的修改和調試。游戲故事如何進行,各種事件如何觸發,何時該播放哪些聲音或動畫,如何使用藝術團隊創作的資源,這些都是在腳本中編寫的,可以說引擎決定了游戲能做什麼,而腳本才真正決定了游戲做了什麼廳中氏。一些著名的引擎如虛幻系列都有自己獨特的腳本語言,其他一些引擎可能會採用一些第三方的腳本語言,比如比較流行的Lua。所以開發一個新游戲最簡單的情形就是沿用之前的引擎,創作藝術資源,然後編寫腳本將其組織成一個游戲,幾乎不需要什麼底層的編程語言。
開發環境方面,游戲團隊內部可能會使用一些開發和設計工具對資源進行處理,可以理解成游戲引擎的IDE,這部分因為是內部工具,而且可能需要經常修改所以一般採用比較高效的開發和語言,比如暴雪就是部分使用.NET和C#進行一些內部工具的開發。
至於引擎核心的開發,Windows比較流行的方法是使用最新版本的Visual Studio,顯卡廠商如NVIDIA也會為VS開發一些插件來簡化顯卡編程和調試。
問題六:游戲編程都需要哪些編程語言 C/C++ SDK
這應該是最強大的組合了,程序的執行效率也是最好的
如果想用C++做個類似最終幻想里的ATB戰斗系統,怎樣一邊實現時間的流失,一邊實現玩家的操作。
這個是多線程的問題,看看有關C++多線程方面的資料吧
問題七:電腦游戲編程適合用什麼語言? 沒有的,c/c++不會被淘汰的,因為做大型游戲,他們的效率是最快的語言之一了。很多底層的與大型游戲都是需要c/c++的。是其他語言不能代替的。當然,如果是小游戲的話,用java就可以實現,但java的效率只有c++的55%。而且,現在c++的也更為普及了。
問題八:游戲用什麼語言編寫的? CS是用VC++寫的,魔獸不清楚了,大多都用VC++,C++,DELHPI寫的手機上用的JAVA
問題九:大型游戲程序一般用什麼語言編寫? C++,一定的,用的是OPENGL和DX圖形庫
問題十:大型游戲用什麼語言編寫的? 在速度就是生命的大型游戲王國里,C才是霸主。雖然C的代碼量大,可維護性、可讀性不如C++,但速度絕對沒的說!
樓恭若要編大型游戲,建議使用C。