關于MME的編寫K佬寫了很好的教程,一共三集,每集都比較短,還有一些專欄。
https://www.bilibili.com/video/BV17W411n7g5
作為MME的入門實際上還是有一定難度的,因為有關渲染的編程的背后,不僅包含一大堆的數(shù)學原理,還包含很多方面,需要相當多的知識儲備。而我本人非計算機相關專業(yè),僅是個人自學,寫這篇文章的目的,也就是做個總結的筆記吧。
【資料圖】
DirectX 9與HLSL(High Level Shading Language)
MMD基于 DirectX 9開發(fā),對于渲染的自由度非常低。 MME是在此基礎上對于 MMD所進行的二次開發(fā),并以插件的形式存在。
為了使用DirectX 9的特性,用戶必須學習 HLSL,即高級著色器語言。這是一門由微軟開發(fā)的、與 C語言語法頗為相似的著色器語言。 HLSL有多個版本,具體取決于可用的功能,但MME支持HLSL直到Shader Model 3.0(因為MMD在DirectX 9.0c上運行)。
DX9這個版本目前來說算是比較落后吧(2023年),沒有幾何著色器,也沒有計算著色器,沒有曲面細分等等。要學習的內容較少,所以相對來說算是比較容易。
HLSL 的基本語法
HLSL 的基本語法與 C/C++ 相同,但它具有適合編寫圖形程序的專用向量、矩陣類型和函數(shù)。 一些數(shù)學函數(shù)類似于 C/C++ 標準庫中的函數(shù)。
編寫工具
關于MME的fx文件編寫,可以用記事本(但不推薦),可以使用notepad++,但是想要支持代碼高亮和提示功能,需要自行配置一下語言庫。也可以使用Visual Studio Code或者2019等等。fx不能自行運行,它是從DirectX調用的。FX本身并不控制繪圖過程,而是主機程序(即MME)的作用命令“做這個”和“畫這個”。
(另外的一些:可以使用NVIDIA FX Composer輔助學習。FX Composer是一個免費的工具,可以直接從NVIDIA的官方開發(fā)者中心下載。FX Composer的最新版本是2.5,官方已經(jīng)不在提供更新。總的來說,這是一個非常過時的工具了……
作者在原書中給出的解釋:NVIDIA FX Composer已經(jīng)不再提供更新開發(fā)支持,并且開始變得有些老舊。它僅支持DirectX 9和DirectX 10,并不支持DirectX 11。同樣,AMD提供的shader編寫工具——RenderMonkey,也不再支持DirectX 11,對這個工具的開發(fā)也已經(jīng)停止。)
(題外話,記不清是哪一個作者,似乎是針金,他好像使用RenderMonkey來寫fx文件,因為某一次某一個fx文件里我看到過RenderMonkey的一些相關)
注意:FX Composer中編寫的效果文件并不能直接在MME中實現(xiàn)。只能說可以用來輔助學習。
HLSL的教學視頻,教程已經(jīng)非常老舊,但是里面的數(shù)學原理和過程依舊值得學習和參考,通過這個可以對整個流程有很清晰的認知。
https://www.bilibili.com/video/BV1pZ4y1k7dr
當然,這一部分只是選擇性地了解。
渲染流水線
渲染管線也稱渲染流水線,可以將其理解為一個流程。管線的主要功能是在給定一個虛擬相機、 三維物體、光源等等的情況下生成或渲染二維圖像。這個工作時CPU和GPU共同完成的。
渲染流程主要分為幾個大的階段:應用階段,幾何階段,光柵化階段,像素處理階段。
這些階段中的每個階段本身也可以是一條管線。管線的各階段是并行執(zhí)行的,每個階段都取決于上一階段的結果。理想情況下,將非管線系統(tǒng)劃分為 n 個管線階段,可以使速度提高 n 倍。因此提升性能是使用管線的主要原因。
應用階段(application)
渲染流水線的起點是CPU,即應用階段。這個階段是我們自己主導的,通常由CPU負責實現(xiàn)。
需要準備場景的基本數(shù)據(jù),渲染的物體、光源的數(shù)據(jù)、攝像機的數(shù)據(jù)、一些全局性的數(shù)據(jù),準備好這些需要渲染的場景對象之后,我們還要做一些優(yōu)化,比如算法上的加速,或者說剔除。接著設置渲染狀態(tài),準備渲染參數(shù),繪制的順序。
設置好渲染狀態(tài)和參數(shù)以后,CPU把渲染數(shù)據(jù)輸出到顯存去交給GPU處理。
幾何階段(geometry processing)
幾何處理階段(geometry processing),此階段會處理變換,投影以及所有其他類型的幾何處理。這一階段在CPU上進行。可以理解為GPU的工作環(huán)節(jié)。另外,此階段會計算所需要繪制的內容,并判斷應如何繪制以及應在何處繪制。
幾何階段進一步分為以下功能階段(functional stages):頂點著色(vertex shading),投影(projection),裁剪(clipping)和屏幕映射(screen mapping)
光柵化階段(rasterization)
光柵化階段(rasterization)通常會依次將三個頂點輸入,形成三角形,然后找到該三角形內所有需要計算的像素,將它們發(fā)送到下一個階段。(光柵化階段好像是不可編程,但可配置的,在此并不多贅述)關于光柵化階段,我們以后可能要去解決鋸齒相關的問題。
像素處理階段(pixel processing)
像素處理階段的目標是計算每個可見圖元中每個像素的顏色與隱藏面剔除。
怎么感覺寫了很長時間了卻還沒寫到入門,本篇若是再塞入語法和范例恐怕就會變得太長了……所以,本文都是些大的概述,算是理論基礎的小鋪墊吧。在后續(xù)的幾篇,我們細化深入了解。我們需要了解更多詳細的過程,才能去寫代碼。
我們實際上去編寫的,是幾何階段的頂點著色器和光柵化階段后的像素著色器。(像素著色器也可以成為片段著色器,有些地方會翻譯為片段)
頂點著色器:頂點著色器計算對象每個頂點的屏幕坐標。頂點著色器基于每個頂點執(zhí)行,輸入是對象的頂點信息(通過骨骼變形轉換后),輸出是傳遞給頂點屏幕坐標 + 像素著色器的頂點信息。
像素著色器:像素著色器計算屏幕上展開的對象的每個像素的顏色。像素著色器基于每個像素運行,其中輸入是從頂點著色器傳遞的頂點信息,輸出是像素的顏色信息。
本文至此僅是一些簡單認識,作為開篇,并不急于直接入手寫代碼,主要是樹立大的框架,列舉了一些可供學習的文章地址。另外,推薦觀看圖形學GAMES101的課程,閆令琪老師的課,可以在嗶哩嗶哩上免費看。
附上舞力介入和光束人p的文章地址和另一篇mme介紹博客,作為mme的學習非常有幫助
MikuMikuEffectで學ぶHLSL入門(日文,需注冊才能看)
https://codezine.jp/article/corner/426
mme初級介紹(日文)
https://higeninjin.blog.fc2.com/blog-entry-5.html
推薦一個hlsl的基礎學習,雖然文章作者是在ue4中實現(xiàn)的,但其邏輯運算等實際上是相通的
HLSL語言基礎? https://zhuanlan.zhihu.com/p/52845899
還有就是微軟官方的HLSL學習文檔,我這里放的是中文版的地址,機器翻譯有很多地方不對,所以建議還是看英文版的。
https://learn.microsoft.com/zh-cn/windows/win32/direct3dhlsl/dx-graphics-hlsl?redirectedfrom=MSDN
英文版
https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-pguide
ビームマンP和MME
実は著者は、MMEに觸れるまでHLSLに関してほとんど素人でした。ニコニコ動畫でMMEを使った動畫を見て、「これを使えばカッコいいミサイルやビームが出せるのでは!?」と手を出したのがきっかけです。
好きこそ物の上手なれ、とことわざにもあるように、何事も嫌々では上達は望めません。本來MMDは動畫を書き出すことを目的としたソフトなので、せっかく使うのならば動畫を書き出して動畫サイトに投稿してみましょう。新しい楽しみが発見できるかもしれません。
實際上,作者在接觸MME之前幾乎是HLSL的業(yè)余愛好者。 當我在Nico Nico 上看到使用MME的視頻時,我想,“也許我可以用它來生產(chǎn)很酷的導彈和光束!?
俗話說,喜歡就擅長,什么都做不了就不能指望進步。 最初,MMD是用于導出視頻的軟件,因此如果您想使用它,請導出視頻并將其發(fā)布在視頻網(wǎng)站上。 您可能會發(fā)現(xiàn)新的樂趣。
參考
MME中文參考手冊? ?譯者? 不吃魚的喵醬
【中文字幕】HLSL著色器入門? https://www.bilibili.com/video/BV1pZ4y1k7dr
實時渲染(第四版)Real-Time Rendering (Fourth Edition)第2章?圖形渲染管線https://blog.csdn.net/qq_27534999/article/details/103148234
【DirectX11】第三篇 編寫Shader?——還是先了解下工具吧https://blog.csdn.net/xueyedie1234/article/details/51354458
TA成長之路https://www.yuque.com/u12120868/md8ze7/ovoxxl
HLSL參考 https://docs.microsoft.com/zh-cn/windows/win32/direct3dhlsl/dx-graphics-hlsl-reference
從零開始學習MME的HLSL編程(1)https://www.bilibili.com/read/cv263176
關于MMD的各種光照的基礎原理? https://www.bilibili.com/read/cv308272
標簽: SHADER 實時渲染 機器翻譯 非計算機 HTTPS 繪圖過程 DIRECTX 基礎學習 Visual Studio Code 書き出す NVIDIA 成長之路 業(yè)余愛好 中文字幕 最新版本 教學視頻 嗶哩嗶哩 從零開始 總的來說 視頻網(wǎng)站
- MME編寫入門(一)·渲染流水線、認識HLSL|即時看
- 【P站美圖推薦】#81 精選美圖# #p站精選壁紙 #p站排行榜 #美少女 #二次元 #泳裝 熱文
- 鄱陽湖又枯了!再次跌破8米極枯線-每日看點
- 世界信息:六省份普查收集一批珍稀農(nóng)作物種質資源
- 焦點速訊:有留守兒童為打游戲5天5夜不睡覺 手機沉迷催生鄉(xiāng)村“新問題少年”
- 河南項城:“母親河”成了“風景河”
- 環(huán)球快報:天津市腫瘤醫(yī)院互聯(lián)網(wǎng)醫(yī)院——患者宅在家 服務送上門
- 全球速讀:茶顏悅色回應滿杯奶茶放久變半杯:奶沫放久了會自己消掉
- 焦點快播:老漢為自己辦“葬禮”:辦完挺滿意,看看自己死后的場景
- 浮山有福了,浮山有賦了!|世界熱點
- 【世界速看料】多家醫(yī)院被投訴“反向抹零” 要承擔何種責任?
- 【環(huán)球速看料】第二屆長江大保護司法論壇 將于11月在漢舉辦
- 當前速看:共青希望小學 :弘揚雷鋒精神 爭做時代新人
- 醫(yī)藥板塊回暖,創(chuàng)新藥指ETF(159858)、醫(yī)療產(chǎn)業(yè)ETF(159877)攜手上揚
- 央媒點贊仙桃“拔河式”救援 全網(wǎng)關注過億 點贊近200萬|今日熱門
- 揚塵源頭精準管控 成都青羊文家社區(qū)在行動
- 天天熱點!光谷空軌開始試車
- 川浙文旅合作新成果 浙江首航旅游包機昨日來川
- 動態(tài)焦點:新冠康復8周后還在咳,怎么治?中醫(yī)支招——
- 熱線追蹤|望京西園四區(qū)社區(qū)小門變整潔,居民出行路暢通了
- 環(huán)球時訊:農(nóng)發(fā)行玉田縣支行開展冬春消防安全專項整治工作
- 農(nóng)發(fā)行玉田縣支行開展打擊治理電信網(wǎng)絡詐騙犯罪宣傳活動
- 農(nóng)發(fā)行玉田縣支行客戶部組織制度集體學習 世界即時
- 中建八局華北公司通州武夷花園項目打造“復工復產(chǎn)服務站”
- 全球熱頭條丨春風問需惠企業(yè) 便民辦稅暖人心
- 全球今熱點:迪麗熱巴回國終于營業(yè),穿吊帶短裙露小蠻腰,肚子平平力破懷孕傳聞
- 賭王三太罕見露面,見證長女與消防員未婚夫甜蜜瞬間,笑得很開心
- 四川省中醫(yī)藥學會第八屆營養(yǎng)與食療專委會換屆會議暨2023年學術交流會議成功召開|世界關注
- 收藏滴東方Project721彈 世界觀天下
- 回旋變換人偶PB04 假面騎士Geats馬格南推進器(重涂裝版)&狂熱套裝公開
- 1 MME編寫入門(一)·渲染流水線、認識HLSL|即時看
- 2 【P站美圖推薦】#81 精選美圖# #p站精選壁紙 #p站排行榜 #美少女 #二次元 #泳裝 熱文
- 3 世界信息:六省份普查收集一批珍稀農(nóng)作物種質資源
- 4 河南項城:“母親河”成了“風景河”
- 5 環(huán)球快報:天津市腫瘤醫(yī)院互聯(lián)網(wǎng)醫(yī)院——患者宅在家 服務送上門
- 6 浮山有福了,浮山有賦了!|世界熱點
- 7 當前速看:共青希望小學 :弘揚雷鋒精神 爭做時代新人
- 8 醫(yī)藥板塊回暖,創(chuàng)新藥指ETF(159858)、醫(yī)療產(chǎn)業(yè)ETF(159877)攜手上揚
- 9 動態(tài)焦點:新冠康復8周后還在咳,怎么治?中醫(yī)支招——
- 10 熱線追蹤|望京西園四區(qū)社區(qū)小門變整潔,居民出行路暢通了