第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

獲取變換后的 3D 頂點(diǎn)

獲取變換后的 3D 頂點(diǎn)

慕斯709654 2023-11-11 21:27:32
我有一個(gè) webgl 著色器,它使用骨架和 SkinnedMesh 基于 Three.js 為我生成模型(請(qǐng)參見(jiàn)下面的示例圖片)。問(wèn)題在于,據(jù)我所知, Three.js 沒(méi)有提供任何選項(xiàng)來(lái)獲取所使用的著色器計(jì)算產(chǎn)生的頂點(diǎn)。有沒(méi)有辦法直接從 webgl 使用的緩沖區(qū)或通過(guò)任何其他方式獲取這些頂點(diǎn),因?yàn)槲倚枰鼈儗⒔Y(jié)果保存為客戶(hù)端的 3d 對(duì)象文件(例如,作為 .obj 或 .stl)。不幸的是,我無(wú)法提供源代碼,但我希望這是一個(gè)關(guān)于 webgl 的相當(dāng)普遍的問(wèn)題,這可能足以幫助我?
查看完整描述

1 回答

?
牧羊人nacy

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊

沒(méi)有“簡(jiǎn)單”的方法來(lái)獲取變換后的頂點(diǎn)

一種方法是在 JavaScript 中運(yùn)行著色器本身正在執(zhí)行的相同數(shù)學(xué)運(yùn)算。

另一種方法是嘗試使用變換反饋來(lái)讓 GPU 將數(shù)學(xué)運(yùn)算的結(jié)果寫(xiě)回緩沖區(qū)。變換反饋僅在 WebGL2 中有效,在 WebGL1 中無(wú)效,此外,在 Three.js 中,至少?gòu)?r123 開(kāi)始還沒(méi)有內(nèi)置支持來(lái)幫助您。添加支持需要修改 Three.js 的源代碼,因?yàn)闉榱耸褂米儞Q反饋,您必須在編譯和鏈接著色器時(shí)調(diào)用一些函數(shù),并且據(jù)我所知, Three.js 中沒(méi)有鉤子來(lái)執(zhí)行此操作,因此您必須修改源代碼。特別是,您需要gl. transformFeedbackVaryings在調(diào)用之前調(diào)用gl.linkProgram,以便告訴 WebGL 您希望它寫(xiě)出哪些變量。

另一個(gè)需要注意的是,如果您需要將頂點(diǎn)值讀回 JavaScript,則需要調(diào)用gl.getBufferSubData該函數(shù),這被認(rèn)為是很慢的。是否太慢取決于您的需求。


查看完整回答
反對(duì) 回復(fù) 2023-11-11
  • 1 回答
  • 0 關(guān)注
  • 131 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)