今天上午和
susu
討論了下
這篇隨筆
中關於選擇和拾取的**,發現有下面幾個問題值得思考:
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
1, selectbuff[buffer_length]
是用來存放命中記錄的,在選擇模式下,與拾取矩陣相交的圖元就會被選擇命中,就會將一條命中記錄寫入到選擇陣列中,每個命中記錄包括:
selectbuff[0]
儲存命中發生時名稱堆疊中的名稱數目,
selectbuff[1], selectbuff[2]
儲存了與拾取矩陣相交的圖元的所有頂點的最大和最小視窗
z座標,並且將兩個座標都乘以2的
32此方減去1。
selectbuff[3]
儲存了命中發生時名稱堆疊的內容(也就是命中的目標名稱)。
上面都好理解,但這裡
susu
碰到乙個問題,說她的程式中
selectbuff[4]
才是儲存了命中的目標,這讓我無法理解。。。 2
,glloadname()
只是置換掉名稱堆疊的棧頂值,而
glpushname
才是入棧的操作,那麼
renderscene
函式裡glinitnames();glpushname(0);
這說明初始時名稱堆疊中只有乙個名稱
而接下來幾個
glloadname(
),只是替換掉棧頂,那就是說只有乙個名稱會進棧,而前面的都被後面的覆蓋了?
如果是這樣的,那後面如何去選中其他幾個圖元? 3
,選擇和反饋模式是把繪圖資訊返回給應用程式,而渲染模式是把這些資訊傳送給幀緩衝,也就是說處於前兩種模式時,螢幕凍結住了(沒有繪製圖形),因此也就對顏色快取,深度快取等不會產生影響。 4
,要進行選擇,首先要把場景繪製到幀快取中,然後進入選擇模式並重新繪製場景,而進入選擇模式後,幀快取的內容不會發生變化,退出選擇模式時,就會返回一系列與視景體(當前的模型檢視矩陣和投影矩陣以及附加剪裁面定義)相交的圖元(這些圖元都被選中了)。而要實現拾取,就需要將繪圖操作限制在視口的乙個小型區域內。
OpenGL選擇機制的一點討論
今天上午和susu討論了下這篇隨筆中關於選擇和拾取的 發現有下面幾個問題值得思考 1,selectbuff buffer length 是用來存放命中記錄的,在選擇模式下,與拾取矩陣相交的圖元就會被選擇命中,就會將一條命中記錄寫入到選擇陣列中,每個命中記錄包括 selectbuff 0 儲存命中發生...
wince romfs的一點討論
wince 的 rom file system 是用romimage生成的。將nk.bin中所有的執行檔案 exe,dll 組織到 平坦空間 重定義dll和exe執行位址使之沒有重疊 按照執行時的格式存放等 這樣就省去了載入定位的過程 檔案的其他資訊 如把檔名,起始位址,長度等 組織在特定的段以便查...
有關生活的一點討論
今天和同事在一起討論生活難易的問題,看到乙個帖子,國外的乙個快50歲的軟體工程師寫的,說他失業也,再就業的難題,然後我們就發散開來了。今年28歲了,不知不覺,還感覺自己很年輕,但是其實已經不小了啊,之前一直都在逃避,逃避在上海買房的問題,逃避未來的發展,因為現在在一家外企做研發,自我感覺還很好,也許...