隨筆檔案(12)
Link
- huangwei.pro
公告“我該走哪條路?”
Home: huangwei.pro 常用鏈接留言簿(1)我參與的團隊隨筆檔案(12)Link
搜索積分與排名
最新評論
閱讀排行榜評論排行榜 |
2015年9月1日 #
摘要: http://huangwei.pro/2015-09/modern-opengl4/ 本篇教程中,我們會鞏固上一篇所提到的矩陣和相機知識,并使用tdogl::Camera類來實現第一人稱射擊類型的相機。然后,我們會將相機與鍵盤和鼠標掛鉤,使得我們可以移動和瀏覽3D場景。這里會學一些向量數學,還有上一篇沒提到的逆矩陣。獲取代碼所有例子代碼的zip打包可以從這里獲取:https://git... 閱讀全文
2015年8月14日 #
摘要: http://huangwei.pro/2015-08/modern-opengl3/ 本文中,我會將不會動的2D三角形替換為旋轉的3D立方體。你會看到這樣的效果: 現在我們終于能在屏幕上搞點有趣的東西了,我放了更多的動圖在這里:http://imgur.com/a/x8q7R為了生成旋轉立方體,我們需要學些關于矩陣的數學,用于創建透視投影,旋轉,平移和“相機... 閱讀全文
2015年8月6日 #
摘要: http://huangwei.pro/2015-08/modern-opengl2/ 在本文中,我們將給三角形加一個貼圖,這需要在頂點和片段著色器中加入一些新變量,創建和使用貼圖對象,并且學習一點貼圖單元和貼圖坐標的知識。本文會使用兩個新的類到tdogl命名空間中:tdogl:Bitmap和tdogl:Texture。這些類允許我們將jpg,png或bmp圖片上傳到顯存并用于著色器。t... 閱讀全文
2015年7月27日 #
摘要: http://huangwei.pro/2015-07/game-random/這段時間公司開發的游戲上線測試,許多玩家在抽卡時抱怨臉黑,很難抽到所需要的卡牌,而又有一部分玩家反應運氣好能連著抽到紫卡,檢查了下隨機相關邏輯代碼,并沒有找出問題所在,玩家運氣好與壞只是覺得真有可能是概率原因。測試開服了幾天之后,需要開放某個限時抽卡活動,在內部測試時,我們發現玩家反應的問題在限時抽卡中格外明顯,尤其是... 閱讀全文
2015年5月21日 #
摘要: http://huangwei.pro/2015-05/modern-opengl1/
modern-opengl
譯序
早前學OpenGL的時候還是1.x版本,用的都是glVertex,glNormal等固定管線API。后來工作需要接觸DirectX9,shader也只是可選項而已,跟固定管線一起混用著。現在工作內容是手機游戲,又轉到OpenGL ES,發現OpenGL的世界已經完... 閱讀全文
2011年4月27日 #
摘要: http://blog.huang-wei.com/2011/04/27/read-source-tool/
做程序員的,每天要對著顯示器上的行行代碼 尤其是一份你從未寫過、未讀過的代碼放在你的面前時,尼會感到似那樣滴心力憔悴 這些還都算了,尼瑪連個注釋都沒!!!文檔呢!有木有啊!! 哥幼小的心靈在一大堆代碼中接受著無數次的摧殘~ 閱讀全文 2010年11月21日 #
摘要: http://blog.huang-wei.com/2010/11/21/winsock-io/Windows Socket IO 模型套接字架構應用程序使用Winsock與傳輸協議驅動溝通時AFD.SYS負責緩沖區的管理。這就意味著當一個程序調用send或者WSASend發送數據時,數據將被復制到AFD.SYS它自己的內部緩沖區中(依賴SO_SNDBUF的設置)WSASend調用立即返回。然后A... 閱讀全文
2010年11月17日 #
摘要: Http://Blog.Huang-Wei.Com/2010/08/09/C%E4%B8%AD%E5%AE%9E%E7%8E%B0%E5%A7%94%E6%89%98%EF%BC%88delegate%EF%BC%89/C++中實現委托(Delegate)公司的項目里有用到Don Clugston的FastDelegate,當時只知道是類似boost::function的東西,UI上當watche... 閱讀全文
摘要: Http://Blog.Huang-Wei.Com/2010/11/02/Bloom-Filter/Bloom Filter 原理與應用介紹Bloom Filter是一種簡單的節省空間的隨機化的數據結構,支持用戶查詢的集合。一般我們使用STL的std::set, stdext::hash_set,std::set是用紅黑樹實現的,stdext::hash_set是用桶式哈希表。上述兩種數據結構,都... 閱讀全文
2010年7月23日 # 上一篇文章介紹了雙數組字典樹 DATrie,現在讓我們來簡單的測試下內存占用情況。 測試用例,我選了The Holy Bible,數據文件大小為4.2MB。只記錄英文單詞,全部轉為小寫。
Trie的實現我已經做了一些優化,初始每個節點的指針數組 size 為0,當有節點插入時,再開 max(size, char) 大小的數組。trie-mem 顯示的是已經除去節點自身的大小,即該數值體現的是申請的指針數組總大小。 trie-mem / ptr-size / nodes = 9.1,說明平均每個節點(內節點+葉節點)分配了9.1個指針。相對完全Trie樹而言,已經節省了很多空間了。但這樣算浪費的量明顯是不夠精確的,nodes 應該換成內節點數(這里就用 u-words 代替葉節點,雖然兩者是不等同的),因為葉節點未分配指針數組,并應該減去真正有用的轉移邊。這個浪費的值應該是 (trie-mem / ptr-size – nodes) / (nodes – u-words) = 12.8。 DATrie的浪費值應該是 (datrie-mem / (2 * int-size) – nodes) / (nodes – u-words) – 1 = 1.2,可見 DATrie 的空間復雜度還是相當不錯的。當然DATrie的實現我還沒有進行深入的優化,基本就是上一篇文章里的代碼做的測試。如果按那文章里提到的優化方法繼續優化,空間的浪費值會更低。 但DATrie存在一個比較大的問題,就是它的空間是預先申請好的,因為根本無從得出它實際的大小,如果空間不夠大了再重新分配的話,那勢必又得消耗時間,而且還是無法解決空間是否足夠的問題。另外,附加的信息域最好保存為指針的形式,否則重排時復制的復雜度就可能會很高。 總結,DATrie還是比較適合在工程中應用,尤其對于數據集比較固定的。 |