太空工程師LCD圖像顯示技術設計詳細介紹
沒錯,我們做出了顯卡。
【原理】
當LCD面板設置的字體是最後一個Monospace的時候,存在一些特殊的編碼,會顯示成像素顏色,這是由zzhou3014提出來的,也經過了檢驗。例如:輸入\uE100則顯示一個黑色像素點。
值得注意的是,因為編碼的問題,直接給LCD手動寫入\uE100是不行的,必須通過程序寫入
【過程】
基於這個原理,我們最先實現了像素方塊的顯示,把螢幕字體大小設置為0.1f的時候,每行每列均有177個像素點,最開始我們採用兩個for循環遍歷所有的x和y,程序每個物理幀需要計算177*177次,遠遠超過了程序計算量上限,所以編程塊會報錯停止
最開始的層級顯示技術(綠色點是滑鼠控制運動的,監測的是主控座椅的滑鼠輸入信息),這是最開始的顯示技術,僅僅實現了不同圖像元素的分層顯示
然後是像素小遊戲
至此因為算法的問題,每個物理幀程序都需要進行177*177次計算,並匹配需要顯示的像素點,然後對像素點進行著色。
在這種算法下,需要顯示的內容越多,程序負擔越大,導致需要把程序的字體設得很大(0.5)來減少總像素點數量,減少程序計算負擔
再後來,我們著手優化顯示的算法,取得了很好的成果,但是,依然無法實現0.1字體,因為程序至少在每個循環都要遍歷一次177*177個像素,這個計算量本身已經超過程序限制了
下圖是0.2字體大小下用滑鼠繪圖,綠色滑鼠是通過監測主控座椅的滑鼠輸入實現真實滑鼠隨動的,按住空格就能畫出黃色線條
最後,我們開創性地採用了1/2算法,即每個程序循環內隻刷新一半螢幕,完美實現了最小像素繪圖
雖然會有點卡,但是,這一技術非常有望應用到飛船控制系統上,將各種控制、顯示、變成圖形化、可視化的操作
準備把這玩意接入雷達,做可視化雷達掃描