程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> x01.Game.CubeRun: 風一樣的女子

x01.Game.CubeRun: 風一樣的女子

編輯:C++入門知識

小孩學英語比較有意思,Monkey three => 猴三,風一樣的女子 => 風 Girl。諸如此類不是重點,重點是一花一世界,一草一天堂。花花草草,紛紛擾擾。大千世界,當別具法眼。

著色器語言,其實就是 C。形如 :POSITION 的語義指示,所指示者,寄存器而已。寫過操作系統的,就會明白,所謂的操作硬件,不過是操作硬件的寄存器罷了。HLSL,面向的是 GPU,操作的,當然是 GPU 的寄存器了。涉及到的特效文件 Cube.fx 內容如下:

Cube.fx

其中,ConstantBuffer 為與程序代碼通信之用。相關代碼(Cube.cpp 中)如下:




   
===] = lightDirections[] = lightDirections[] = lightColors[] = lightColors[= XMFLOAT4(, , , =->UpdateSubresource(m_pConstantBuffer, , nullptr, &cb1, , );

不難看出,基本是一一對應的關系,調用 UpdateSubresource() 函數完成數據更新。

運行 VS2012,新建 Win32 空項目 x01.Game.CubeRun,選擇菜單 VIEW =〉Other Windows =〉Property Manager,在 Manager 中,選擇 Microsoft.Cpp.Win32.user 進行設置。相關設置,可參看 Main.cpp 文件中的注釋。這樣,新建項目時,就不需要重新設置了。

3D 游戲編程,無外乎光照、紋理、坐標變換。這些,DirectX SDK 文檔語之甚詳。除此之外,學習C++,推薦《C++ Primer》:細微之處,都講得非常清楚。向量和矩陣,也是題中應有之義,好在不難。

說到技巧,最大的技巧就是復制與粘貼。畢竟有現成的代碼可供參考,犯不上同自己較勁。而代碼,幾乎是公式化的東西,如注冊窗口類,創建窗口,創建設備和交換鏈,創建設備上下文,創建渲染目標視圖等等,都是可以直接拿來用的。理解之後,可將 DX11Base.h, DX11Base.cpp, Main.cpp, Helper.h 復制到一個模板文件夾中以重用。這也大多數人的選擇。

在特效文件 Cube.fx 上右擊,選擇 Property 菜單,將 General =〉Item Type 內容設為 Does not participate in build,否則,HLSL 編譯器會找不到 main 函數而報錯。

源代碼可到我的置頂博客 x01.Lab.Download 中下載。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved