互聯(lián)網(wǎng)三維展示越來越流行,,關(guān)注的朋友們也越來越多,。許多朋友知道玄科,,也知道玄科沒有采用WebGL技術(shù),不禁問道:“你們的技術(shù)比WebGL強(qiáng)在哪,?”,,我們給出的答案之一是“保密性”。因?yàn)閃ebGL是不能夠進(jìn)行三維原始數(shù)據(jù)保密的,,從它的理論基礎(chǔ)就無法做到,。
于是我們覺得應(yīng)該寫一篇文章,給大家講解一下,,為什么WebGL不能保護(hù)模型數(shù)據(jù),,并且我們挑選了一個(gè)世界最著名的WebGL網(wǎng)站——sketchfab.com,作為模型破解案例來給大家講解一下。
WebGL的本質(zhì)就是一個(gè)基于瀏覽器的OpenGL調(diào)用標(biāo)準(zhǔn),,制定這個(gè)標(biāo)準(zhǔn)的原因是希望在瀏覽器里面進(jìn)行基于本地設(shè)備的三維渲染,,也就是把瀏覽器當(dāng)做傳統(tǒng)的桌面版三維軟件使用。在使用過程中會產(chǎn)生兩個(gè)步驟:
第一,, 瀏覽器會下載原始三維模型到本地電腦,;
第二, 瀏覽器會在本地電腦渲染模型,。
原始模型都下載到用戶本地電腦里面了,,保密工作還能進(jìn)行嗎?有的網(wǎng)站說,,我們的數(shù)據(jù)加密了,,不怕下載。有的客戶說,,這些都是國際大公司,,保密工作肯定做得好。那么今天,,我們就避免“口說無憑”,,用實(shí)例給大家講解一下破解WebGL原始模型的方法。
首先要說明的是,,WebGL模型是不是可以加密,?是的,可以加密,,只是解密算法還是要在用戶本地的瀏覽器執(zhí)行。那網(wǎng)站再對解密算法進(jìn)行包裝混淆,,是不是就可以了,?
答案是,我們不關(guān)心,。
因?yàn)槲覀儾粫ヅ瞿P拖螺d這個(gè)過程,。我們的目標(biāo)是第二個(gè)步驟——模型渲染,繞過第一個(gè)步驟,,直接在渲染過程中抓取數(shù)據(jù),。
前面提到了,WebGL的本質(zhì)還是OpenGL標(biāo)準(zhǔn),,既然是標(biāo)準(zhǔn),,那就是公開的,有參考的,,統(tǒng)一的,。不管模型如何加密,解密算法如何復(fù)雜,終究還是要將全部的原始數(shù)據(jù),,送給WebGL在本地渲染,。
只是這次,我們在瀏覽器里,,添加了用于截取WebGL數(shù)據(jù)的鉤子程序,。這就相當(dāng)于漁夫利用鸕鶿抓魚,WebGL就是鸕鶿,,鉤子程序就是漁夫在鸕鶿脖子上打的結(jié),。對于漁夫來說,鸕鶿抓的魚都會被攔截,,并且完整的取出來,。
我們在sketchfab.com的Staff Picks里面,選擇了一個(gè)模型,,叫Destroyed Vampire Body,,看起來挺嚇人的樣子,一會兒我們就把他搬到玄科的三維展示平臺上,。
這是sketchfab模型的網(wǎng)址二維碼和鏈接:
https://sketchfab.com/models/f64 ... op=0&ui_watermark=0
瀏覽器下載好模型之后,,就開始渲染。我們在Chrome里安裝了的鉤子程序,,于是就看到了這些:
這些就是寫到WebGL里面的數(shù)據(jù),,每個(gè)Buffer就代表一部分模型。在Contents里面的,,就是頂點(diǎn)坐標(biāo)信息,。不用再多說了吧,數(shù)據(jù)全部在這里,。
當(dāng)然,,還有貼圖:
此外,還有Shader的源代碼:
以及他們之間的調(diào)用順序:
基礎(chǔ)數(shù)據(jù)有了,,我們又寫了程序把這些內(nèi)容自動(dòng)拼接成OBJ文件,,到這里為止,鸕鶿抓的魚已經(jīng)被漁夫完整的回收了,。
至此,,模型破解工作就完成了。因?yàn)榭谡f無憑嘛,,我們就把這個(gè)模型放到了我們的平臺上,,大家掃描下面這個(gè)二維碼,如果在微信里的話,,就可以長按圖片,,識別二維碼再打開也可以,。
http://www.xuantech.cn/3d?name=demo/crack/sketchfab-zombie
下面就是這個(gè)模型放到玄科展示平臺的效果:
寫這篇“科普”文章的目的是給大家講解和闡釋一下WebGL的理論,數(shù)據(jù)保密這件事,,WebGL真是做不了,。我們只是拿sketchfab作為一個(gè)例子,實(shí)際上所有的WebGL網(wǎng)站都可以用同樣的方式破解,,不管加不加密,。
玄科的平臺技術(shù)沒有采用WebGL方案,在使用過程中不存在任何的模型下載和模型渲染,。朋友們?nèi)绻涯P头旁谶@里,,就不用擔(dān)心保密性的問題了。
點(diǎn)擊“閱讀原文”可以查看破解后的三維模型展示效果,。
閱讀原文
|