bl双性厨房裸体围裙_一本大道一卡二卡三卡_2019年中文字字幕在线看不卡_中文字幕日产乱码天堂

首頁 | 資訊 | 財經(jīng) | 公益 | 彩店 | 奇聞 | 速遞 | 前瞻 | 提點 | 網(wǎng)站相關(guān) | 科技 | 熱點 | 關(guān)注 |
MME編寫入門(一)·渲染流水線、認(rèn)識HLSL|即時看

發(fā)稿時間:2023-02-28 11:31:38 來源: 嗶哩嗶哩

關(guān)于MME的編寫K佬寫了很好的教程,一共三集,每集都比較短,還有一些專欄。

https://www.bilibili.com/video/BV17W411n7g5

作為MME的入門實際上還是有一定難度的,因為有關(guān)渲染的編程的背后,不僅包含一大堆的數(shù)學(xué)原理,還包含很多方面,需要相當(dāng)多的知識儲備。而我本人非計算機相關(guān)專業(yè),僅是個人自學(xué),寫這篇文章的目的,也就是做個總結(jié)的筆記吧。


【資料圖】

DirectX 9與HLSL(High Level Shading Language)

MMD基于 DirectX 9開發(fā),對于渲染的自由度非常低。 MME是在此基礎(chǔ)上對于 MMD所進行的二次開發(fā),并以插件的形式存在。

為了使用DirectX 9的特性,用戶必須學(xué)習(xí) HLSL,即高級著色器語言。這是一門由微軟開發(fā)的、與 C語言語法頗為相似的著色器語言。 HLSL有多個版本,具體取決于可用的功能,但MME支持HLSL直到Shader Model 3.0(因為MMD在DirectX 9.0c上運行)。

DX9這個版本目前來說算是比較落后吧(2023年),沒有幾何著色器,也沒有計算著色器,沒有曲面細(xì)分等等。要學(xué)習(xí)的內(nèi)容較少,所以相對來說算是比較容易。

HLSL 的基本語法

HLSL 的基本語法與 C/C++ 相同,但它具有適合編寫圖形程序的專用向量、矩陣類型和函數(shù)。 一些數(shù)學(xué)函數(shù)類似于 C/C++ 標(biāo)準(zhǔn)庫中的函數(shù)。

編寫工具

關(guān)于MME的fx文件編寫,可以用記事本(但不推薦),可以使用notepad++,但是想要支持代碼高亮和提示功能,需要自行配置一下語言庫。也可以使用Visual Studio Code或者2019等等。fx不能自行運行,它是從DirectX調(diào)用的。FX本身并不控制繪圖過程,而是主機程序(即MME)的作用命令“做這個”和“畫這個”。

(另外的一些:可以使用NVIDIA FX Composer輔助學(xué)習(xí)。FX Composer是一個免費的工具,可以直接從NVIDIA的官方開發(fā)者中心下載。FX Composer的最新版本是2.5,官方已經(jīng)不在提供更新??偟膩碚f,這是一個非常過時的工具了……

作者在原書中給出的解釋:NVIDIA FX Composer已經(jīng)不再提供更新開發(fā)支持,并且開始變得有些老舊。它僅支持DirectX 9和DirectX 10,并不支持DirectX 11。同樣,AMD提供的shader編寫工具——RenderMonkey,也不再支持DirectX 11,對這個工具的開發(fā)也已經(jīng)停止。)

(題外話,記不清是哪一個作者,似乎是針金,他好像使用RenderMonkey來寫fx文件,因為某一次某一個fx文件里我看到過RenderMonkey的一些相關(guān))

注意:FX Composer中編寫的效果文件并不能直接在MME中實現(xiàn)。只能說可以用來輔助學(xué)習(xí)。

HLSL的教學(xué)視頻,教程已經(jīng)非常老舊,但是里面的數(shù)學(xué)原理和過程依舊值得學(xué)習(xí)和參考,通過這個可以對整個流程有很清晰的認(rèn)知。

https://www.bilibili.com/video/BV1pZ4y1k7dr

當(dāng)然,這一部分只是選擇性地了解。

渲染流水線

渲染管線也稱渲染流水線,可以將其理解為一個流程。管線的主要功能是在給定一個虛擬相機、 三維物體、光源等等的情況下生成或渲染二維圖像。這個工作時CPU和GPU共同完成的。

渲染流程主要分為幾個大的階段:應(yīng)用階段,幾何階段,光柵化階段,像素處理階段。

這些階段中的每個階段本身也可以是一條管線。管線的各階段是并行執(zhí)行的,每個階段都取決于上一階段的結(jié)果。理想情況下,將非管線系統(tǒng)劃分為 n 個管線階段,可以使速度提高 n 倍。因此提升性能是使用管線的主要原因。

應(yīng)用階段(application)

渲染流水線的起點是CPU,即應(yīng)用階段。這個階段是我們自己主導(dǎo)的,通常由CPU負(fù)責(zé)實現(xiàn)。

需要準(zhǔn)備場景的基本數(shù)據(jù),渲染的物體、光源的數(shù)據(jù)、攝像機的數(shù)據(jù)、一些全局性的數(shù)據(jù),準(zhǔn)備好這些需要渲染的場景對象之后,我們還要做一些優(yōu)化,比如算法上的加速,或者說剔除。接著設(shè)置渲染狀態(tài),準(zhǔn)備渲染參數(shù),繪制的順序。

設(shè)置好渲染狀態(tài)和參數(shù)以后,CPU把渲染數(shù)據(jù)輸出到顯存去交給GPU處理。

幾何階段(geometry processing)

幾何處理階段(geometry processing),此階段會處理變換,投影以及所有其他類型的幾何處理。這一階段在CPU上進行??梢岳斫鉃镚PU的工作環(huán)節(jié)。另外,此階段會計算所需要繪制的內(nèi)容,并判斷應(yīng)如何繪制以及應(yīng)在何處繪制。

幾何階段進一步分為以下功能階段(functional stages):頂點著色(vertex shading),投影(projection),裁剪(clipping)和屏幕映射(screen mapping)

光柵化階段(rasterization)

光柵化階段(rasterization)通常會依次將三個頂點輸入,形成三角形,然后找到該三角形內(nèi)所有需要計算的像素,將它們發(fā)送到下一個階段。(光柵化階段好像是不可編程,但可配置的,在此并不多贅述)關(guān)于光柵化階段,我們以后可能要去解決鋸齒相關(guān)的問題。

像素處理階段(pixel processing)

像素處理階段的目標(biāo)是計算每個可見圖元中每個像素的顏色與隱藏面剔除。

怎么感覺寫了很長時間了卻還沒寫到入門,本篇若是再塞入語法和范例恐怕就會變得太長了……所以,本文都是些大的概述,算是理論基礎(chǔ)的小鋪墊吧。在后續(xù)的幾篇,我們細(xì)化深入了解。我們需要了解更多詳細(xì)的過程,才能去寫代碼。

我們實際上去編寫的,是幾何階段的頂點著色器和光柵化階段后的像素著色器。(像素著色器也可以成為片段著色器,有些地方會翻譯為片段)

頂點著色器:頂點著色器計算對象每個頂點的屏幕坐標(biāo)。頂點著色器基于每個頂點執(zhí)行,輸入是對象的頂點信息(通過骨骼變形轉(zhuǎn)換后),輸出是傳遞給頂點屏幕坐標(biāo) + 像素著色器的頂點信息。

像素著色器:像素著色器計算屏幕上展開的對象的每個像素的顏色。像素著色器基于每個像素運行,其中輸入是從頂點著色器傳遞的頂點信息,輸出是像素的顏色信息。

本文至此僅是一些簡單認(rèn)識,作為開篇,并不急于直接入手寫代碼,主要是樹立大的框架,列舉了一些可供學(xué)習(xí)的文章地址。另外,推薦觀看圖形學(xué)GAMES101的課程,閆令琪老師的課,可以在嗶哩嗶哩上免費看。

附上舞力介入和光束人p的文章地址和另一篇mme介紹博客,作為mme的學(xué)習(xí)非常有幫助

MikuMikuEffectで學(xué)ぶHLSL入門(日文,需注冊才能看)

https://codezine.jp/article/corner/426

mme初級介紹(日文)

https://higeninjin.blog.fc2.com/blog-entry-5.html

推薦一個hlsl的基礎(chǔ)學(xué)習(xí),雖然文章作者是在ue4中實現(xiàn)的,但其邏輯運算等實際上是相通的

HLSL語言基礎(chǔ)? https://zhuanlan.zhihu.com/p/52845899

還有就是微軟官方的HLSL學(xué)習(xí)文檔,我這里放的是中文版的地址,機器翻譯有很多地方不對,所以建議還是看英文版的。

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è)余愛好者。 當(dāng)我在Nico Nico 上看到使用MME的視頻時,我想,“也許我可以用它來生產(chǎn)很酷的導(dǎo)彈和光束???

俗話說,喜歡就擅長,什么都做不了就不能指望進步。 最初,MMD是用于導(dǎo)出視頻的軟件,因此如果您想使用它,請導(dǎo)出視頻并將其發(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

從零開始學(xué)習(xí)MME的HLSL編程(1)https://www.bilibili.com/read/cv263176

關(guān)于MMD的各種光照的基礎(chǔ)原理? https://www.bilibili.com/read/cv308272

標(biāo)簽: SHADER 實時渲染 機器翻譯 非計算機 HTTPS 繪圖過程 DIRECTX 基礎(chǔ)學(xué)習(xí) Visual Studio Code 書き出す NVIDIA 成長之路 業(yè)余愛好 中文字幕 最新版本 教學(xué)視頻 嗶哩嗶哩 從零開始 總的來說 視頻網(wǎng)站

責(zé)任編輯:mb01

網(wǎng)站首頁 | 關(guān)于我們 | 免責(zé)聲明 | 聯(lián)系我們

生活晚報網(wǎng)版權(quán)所有

Copyright @ 1999-2017 gaoerwen.cn All Rights Reserved豫ICP備20022870號-23

聯(lián)系郵箱:553 138 779@qq.com