本文基礎:
c#+opengl程式設計之環境搭建
現在是第四章 opengl 光照,這章開始,我遇到麻煩了,因為原書的auxsolidsphere這個函式,c# 沒有封裝,我就把例程修改為:
3個光源,乙個正方形。
using system;
using system.collections.generic;
using system.text;
using tao.opengl;
using tao.glfw;
namespace opengl
; static float lightpositiong = new float ;
static float lightpositionb = new float ;
/** 定義三個光源的漫射光 */
static float diffuselightr = new float ;
static float diffuselightg = new float ;
static float diffuselightb = new float ;
/** 定義三個光源的鏡面光 */
static float specularlightr = new float ;
static float specularlightg = new float ;
static float specularlightb = new float ;
/** 再定義乙個預設的光源 */
static float diffuselight = new float ;
static float specularlight = new float ;
static float lightposition = new float ;
float m_angle = 0.0f; /**< 設定初始角度為0 */
public light()
: base()
/// /// 初始化視口投影,恢復原書的視口
///
public override void iniview(int windowwidth, int windowheight)
/// /// 過載,使用draw方法繪圖
///
///
///
public override void drawglscene(int mou***, double currenttime)
/// /// 過載
///
///
///
public override void update(float milliseconds)
else
/** 更新綠色光源 */
if (glfw.glfwgetkey(glfw.glfw_key_f2) == glfw.glfw_release) /**< 當數字'2'鍵沒有被按下時 */
else
/** 更新藍色光源 */
if (glfw.glfwgetkey(glfw.glfw_key_f3) == glfw.glfw_release) /**< 當數字'3'鍵沒有被按下時 */
else
m_angle = m_angle + milliseconds * 10;
}/** 繪製函式 */
void draw()
/// /// 由於沒有auxsolidsphere這個輔助函式,我做了修改,改為正方形
///
///
private void auxsolidsphere(float p)
public void drawcube()
}}
程式我們用到了update過載來計算動畫變數,在我的機器上只用時間差值太慢,我
時間差值x10作為動畫時間,大家可以根據自己機器修改。
程式執行結果與原書不同,乙個白色的正方形,因為三個顏色紅 綠 藍疊加就是白色,大家可以通過按住鍵盤f1 f2 f3 來關閉相應燈檢視燈光顏色疊加效果。
程式設計之我見
激情不夠,活也不行 部分專注專案,理論不行。或當下的技術棧完全可以勝任工作,拿到可觀的薪水,溫水之中做乙隻安逸的青蛙。學好程式設計必須富有激情,充滿了性趣。理論 沒有理論支撐,實踐只是機械性的死記硬背 實踐 將理論穿插進實踐,將理論都玩明白,姿勢要舒服。經驗 遇到的問題多了,解決的多了,經驗就多了。...
網路程式設計之Socket程式設計
對 tcp ip udp socket 程式設計這些詞你不會很陌生吧?隨著網路技術的發展,這些詞充斥著我們的耳朵。那麼我想問 1.什麼是tcp ip udp?2.socket在 呢?3.socket是什麼呢?4.你會使用它們嗎?什麼是tcp ip udp?tcp ip transmission co...
網路程式設計之socket程式設計
大多數專案是在linux下開發伺服器端,而在windows下開發客戶端,需要經常在兩大平台之間進行切換,單獨學習一種平台沒有實踐意義。值得欣慰的是,兩大平台下的 socket 程式設計非常相似,並不會增加多少學習成本。網路程式設計就是編寫程式使兩台聯網的計算機相互交換資料。這就是socket的全部內...