Three .js 記錄一次給 three.js 提 pr 的經歷!!2020衝鴨!!

記一次給Three.js 提 pr 的經歷!! 哈哈

  在 Three.js r110的版本中,mrdoob 添加了InstancedMesh,在一次issue的討論中,有人提到想知道它具體的是哪個實例, 有人建議gpu pick,也就是基於顏色編碼去做。哈哈,巧了,最近一直在讀Three…js 的源碼,正好包含raycast部分,我就嘗試着去實現InstancedMesh.raycast,也在這個issue中表述了我的想法,也很多人支持。
  整個開發過程持續了一週,每天晚上下班就回家搞,很累,但是很興奮。因爲Mugen87在看了我的issue之後,建議我去做一個pr,就這樣持續一週的時間,不斷的code review,不斷的修改,最終也受到了各位大佬的認可。我製作做的demo也被收錄到Three.js 官方demo中,真的很激動,這是我第一次給這麼大的開源庫提pr,太興奮了。哈哈哈哈。
  這是被收錄後demo的地址:webgl_instancing_raycast ! ! mrdoob在正式發佈r111之前做了一次修改,mesh換成了粉色的球體,這顏色絕了,doob還有一顆少女心,哈哈哈。
  大家可以點進去體驗下,選中一個球就會旋轉,這些球是利用多實例渲染的,也就是現在InstancedMesh,這種渲染方式可以提高性能,但是並不能像普通Mesh那樣利用raycast的去拾取, 這也是我這次pr中要做的,實現InstancedMesh的raycast。
  主要的實現思路是利用每個實例的模型矩陣去做判斷,哈哈,不懂的話就去翻一翻源碼,回來再看這句話就應該懂了。這次pr中,學到了好多,良好的代碼設計,編碼規範等等。也體驗了次code review的過程,哈哈,這也算是一次正式的開發流程了吧!下面截了幾張圖作爲留念。
在這裏插入圖片描述
在這裏插入圖片描述
  這次經歷真的非常完美,體驗一次完整的開發流程,主要是平時寫代碼,沒人做code review,自己都忘記了如何利用好oop的編程思想做出好的代碼設計,以後有時間繼續做pr,對Three.js感興趣的朋友可以加我的技術交流羣,一起交流,一起學習,2020衝鴨!!
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章