I?;~?EK@3|}gZL`}T);DE~
zZXeb5MQUm-wC`T;kSF)Trz=UPy{rD>)$?jM%G(N4%)T9)>fw?%y|j{5FkD&g(FnPg
zkiEcLA96PKd#A!m>1x9b&q^0hQ5oKvr^ii(Z~0>
zmc67Nhc*pz4#o8hs9fTV^nnbi<258Lw{lpSbFG-1v=LHwzmW*%4_Mlr^Yi}&8oT`~7(}EsuxZxl_
zjvCW(@yj<8>3pjXeuY+lONglUg0(#fu&dn%USvBxBNMBfFHoVgTCOE20#zl=2zsTX
ztY~0TL>TCDUc4&VWH{Y4z?<
zs4WWaL0~V@xOLB8PSWnZPZ;^RV(PZ>5<6~7!Es7u7rWi4Tr(Nd#c1^0C2thNVD(~A
zb=24ob82Gymg@8LEe+x}Hv7;+P80v|2oZ%g+>IEr68iua_nMjfPJukHBuKD=icl|g
z3!RAvK4d-+$a1iWVZpgzX`@F?93~F#zzz|`Jn1q?wMW(qusv-H()iR|<^*I&I(8T-
zi@l^iEYj(#HX1EqYQd7wkh}JMp~T1%NhhYbxVo??EIpeLLIh{1l_|0BMtC4w7Wh||
zH!>{kxKNwNv$XfVn<4IUncB9l{nHKXKo=Q{5Xzkja5q;g-{yFdT{
z%3%Ip4gWQFcQSEywy-t(YieGirsb5yj^ewO@e3Yr6W57}T{;I&-+cayO{uI~o=Loo
zP4J+2|Kjt#*Wi#Wt7Yo~uSRxOw^Q0y*N5)h7$CF+yO!p3h>Z+AmAk}uTMHkr(K2W&
zB2+`t!t9+Am%({YzxyNnt2J@M5`JmfUXUaO73!KUMHl9*F~c}25<2%7O!_u$W%0hU
z?^Bc{cv+sB*Oj7?))1tp>`pdZ^0Q;S+o)oKEwUgt)4XvpADaSt>{e5D-i+YSo3E#6?bYviGI
z^(hDiP%k!W5DdteVn4=bDHhQYPBr`)u@VR$8^_Q(QRnxpjiFgQ&~o`0MDw8Wh#ljtuoNgh6;ML#@gu!*zh{&%B+-q~8Siw{qfyKz{>-d#vNp_0Bs=%8!sdnNKK3xJ7k~EecyHA07>`D`ULn;qR
z_C+Y3%(sdw3S9`o+yCenOxX1+!R)b9FUYKg+Bz
zx1r7-&s{wUxcjvMilZNJ(!J7&zb&K4s$70#7px=G7^hhuWRaH{Q;pG~Y(?vSShN}R(!vJ2+X$EJ#?U%m6K8PzCoXwNsh{TbA<^ES&
z{j&D4Of#?UD@+dA`mfT_*+bk;Q=DnCtyo}dQr16v;m}3>fM(XDHG=h!ZFSV$#O~XhW
z_`}t4-CZu%!`AwGB*&}uVgxLQU{c%d(it%%b^#%Orc#{G{c^~Ce!xocK8Q|aNfd#(
zeL;>0BS57YF%Hsz*e}QcdG{#Wr3o`*!D1#JwU9aNf{Bq+tV;aqE9$1J=?N}UN7IIY
zAVx*KC10-fi5egpzW%S3Up6)TE_}(uXE)|uMbIh!~#{PsfBsI33?$@<{e`_bQRexJ^+WjRF&SwQolnmq?b5sB#1M3o+X+T9_9AJf+6jiCJQNMDkO86k!U`PJA`W86j5cgjw7T3nwxMM{%m
zjHz)iR9m*kufzUiT+n}WzF4*?8fE#E83vZ>YrZLoB-nU)3N8bwV2fr-beL=(BaWDZ
za*u_4G%h%O;Gsf@y@4_2PY07_Ks{6h;#YvJi7
z2QFEVyU+O5oIcoM0g6{I;1B2_bynFz%hT=qjj9(mL!7Qu>8kLsV~)SiHzqL@E^mq^$JV*bGU;3pTm{$_i!yq
zS-0J#M+m)ATXPHdhL_OPms*r>n63F*rThS>y%%48BVZJ?bKxcp$G>1B0c*A&*
z%%*BZ)Lsi3L2!@2N@n&bh%@j`2_-y?DZcO$uohX(cH+cyerqB0D+P1PhmuakaN2
zF;c;dXdDl!yK1Pci*UHprFRkGE?m0CggoNKCJjVu9P*}NAsdSc!zH~sd^ol5kpsZ$
zIN^f51+XkycXz(wSrhDTrrugaCyx@%nVl5zm%ZXUQ2wbJ%i0vvAURo4LbJlL;u8$^kdZ~xzMoO
z6^H9rQ~Gz7m-1MdFH{ikyJFV2@c(zm?x*wiZ^y2)xrvR*AMV|x0V{U^FaQ8*OaK7X
ze-i#h{+D^Z(2%mjW<%&kKlW2U?@BQ~L&Qt~){6TYlLL~FNF-*Nwq`P@Ln}TWYb)SL
z357x)kH*2wKPLq*G6w)Vo6mFCvltS@{0kA+u>_Su;U1V5M8p`s`G=h;@3egnp_*D9
zk94_Pcsl{L&2viJM0ePNe+Ws8=KF@gRS{J;8HuEjutucTI|}s2+Cvz=wulzvFyuoo
zFRE7g!HA-%R!Jg+K1M{GMyS$PHbZU!Bw7z;C=O1b9!MISz=tT<{Yg3=;cj#mhCsqj03uFSpg
zC07b0BtOibO@7@-t*c3yTbT+UU}+81mhmxlWC*Zt&N6r~QwOS6wOIO;UDp9B*Y19c
zvF*~Ld$Rz50!p`-9=g+5x4Cq+WU2-n@8R@z!^)Y83}Jh-tF_;(sNjRH6KMZ9h3a0h
z5<;Wt1Uq)xb#
z!NO`fjZUr(J9Mf@C`z4jwyYV5N52W|52Q#UaXMxZDn{-<^!8FVqxbO;)+Se|UP*2a
zO}yvIixQqfh&qc5NS0y!oM#G=8ym8aq*fP;-^1Gr6Hu7Lj;AxzT^A!9uJ)6E|6{>cRj?T
z5pTla&W&icdN1(sG40+o^$+=mXlD2?7W;71WM3}f1jA~-+aznMT*@*cDC|0}#x{uj
zWEH6pMwD&1TjXIK{?5?x8m#WYLjY(N7*p()=iU*{uEa<~TC>^>8
zQ3p>PqJ=$UiSz{UcW0aMzixke{WhFl~uvo_>~Gf*q+Z8EL)(y~5Ic43%cfR)j5JH$$apmH%@zeX+vJ*jn*0cqFlI@4*YfklsPaH&v4@Zf+-ZAV~|5oG&efiZB
zU~*bnBMlh6r6d?YYVE;<)*JSuJVeY#qvXEBu3aj!g!J~<;4}unFj1cKyP9j~M4Wnh
zK4(?RQ~!*pFn&h{-CEQ=d;NHhZ=32k#ZZr#HpTFrPC(-i+$7QZtPwKc5yRf{q!Rdb
zgcfi}o~CL2g(vzBBJFu;mLZ_>RFy!lMDVUkG(D=I$n=3m$c606F5^->b+xpICaRt~
zj5Vn8q3AeGsP*N}N)9?)JS-jF6*&d-Xplzjt0c~*&hW?#P&d{tm2*wA>~=L-QHh#&
z%9N(<^ybX9Z|G4`%UI{BEdiyainEJcme2Q7SkxH+CNzE^VQx>E#`UhjYcoVxeNpxN
zw{HPG;f==Hqi{$Lx%M=i?N}tjhL;M7&E71(3SpR+unOB%Sosk)H5_H)Q`};3P&Q~8
z@nY-=rW&z{DHone$-Qe)r#sf(cJ)ohzQ|wt;^27*aqhSwP&a566(V6E0oJ)wdaw!s
z(UC$EYE}1?3^OO`{H)2>6?$eb)QC349YXnuQ(MxRUsM-~gQ3>MAtV@+Jc+eKuL!#=
zUAZI^Rh!_XzV0H&rkKGb>@>$jqoSa*P-CbX?18O5elV2T*=Lz+Xr5*oHdErI;h5!A
zqqRncq637ayFWAMGBb++V;QB7#xmrt5}IN;L3>bhj5uvi
z?_Mws?>bS17ApGFr)0YM9dY0-AOIHM-`#mz$KZqs}W<%
zrEYQ{d2Jd5lle}tTQjHgTh~0?zO3?uAd?p~OVLnhX@(YMzQHBD*?y;DjqGMLsWGF;=rp_D+R^X#Ok+B#i$#
z*4zT}u^S%kPalufc=+O1;A-;VVsq+PyD@moV>p(y(&1NTlSQB#3?K{f?m@;zK$}z$
z=RWxn#_J;jp|C2w4eUT5>|>FGH!e`N+~k&bekkKo!}uyNkBEdtr&LHb<3${l;?Yu6
z1{F-yFIg0*qMknYo;Oo6&Vnpi=2PhYIw`enXMmcYq55EVbtA{+g%i`#_A1sKbQ`S8k1G*sr_57QECD`H!yvK%
zH->SBhDULwUiLZTZ}9J7WX7XZRKLGkdbhptE)mm0;Xl=>fqB*pIm|C8MNA#uc9UMo
zrzpozg-ZD5LF*(PZsnMPD75n>O+#W(pO~(?bA*u_DM2n2lmgKNXo(_;{lNDwU{i#@
zt{*&q(?{KvVb2m};(HxIh(^XC(KZ6F860|irK;>0MO1G~#<;L~O>$DdxOBS{=|Q9w
zH%FyXH>XsMGPwUi8(~Hkw^j;@`m1dvawfM<0x>Rkv}aBCFEZjx&eSRx{wadK$AtGg
zO;JH%2nWJ=&hiNzDnJWrc`NzIQX=5Qv}^W4Ivdy$E7#t-trp+Ns;l#%2@KM~mkOP7
z4Zcej>qmVWEere@KZsIGFvN)>s@Yu|Oum-LudW&w{a%%rFdO_HCl@blZ994vz6}uy
zL18h{p`}VhD2D2b9@r@8ig*Ja?UBH09`5mipR$c7Hgz)FG$UYe2tBtL1)_rb2)+Cvs8f5jxvPRMSONgZ;1zfD>-QS91%x
z_#$qQyJHb3T<;bJv*jvOv}Pk4Y1g6AeNk#8g*@sHHULlc$hqz^(TY70>Kj$0B;rGs)%Ae7C`%zM2C)ut7gDa4f6J2=kPuk@)kOM&6n
z`b~HI1sDvieOvHU$tb+`OOKS>jf(I^Yc5ZXG(jpfDJiEU*dkj%C11g9C&Tw=x7Xx38D8YJ(t@IvoJ2@+W7j^N(~q
zO(r866{`F0Q`}8zrczCE4~4c`rgvwQUG9FrPGBmSogE(UC@|VOv@&El5r_6v3XyL^
z4Jn5uNCB2#l7F2#oQxevE`l;{Mo~dOOwC-hNW7l9j4v?8OR?yoLspmulTrm|u&3QY
zPDr|S^bvHoTxy;D3Xn;geV1p2KsR$wkn!xlej73ke_qF>8YHFe@jS2AwxSvIvD!$P
z_BvUaFGP@uOc=!9)Wn~=MeaPKX(0MIjE_lV0+{d
zKyNwlebHsSXjIFhd0ti1b0M(4?(XMntGB2ZYNfFTQ83(-AZ*9(|56h@4mu_1=`wOO
zw(LUaY=UmbZ(xxM+SN-RZFbm9aQ5I2y6zc9ycd+(c_9!a533`(J-mM!`iqQt3ffzm
z2x=a_`!0yi$M;ZZ^0eM&V`!*IkQ?zQ>_OL#S$2iQ>n3u2^vad@o`NJEAsl1p^E+~0
z-f94i1`y3`;h>o7Kz0@N)_EikczVB7HG~#P96&3~H>*__fQQ6nv>xZn8fR`QZ&4F)
zQ&8-v1q9D?JLMn9B6Haa6tr7+n5c;{HCTQjYS>(mCAj|1Cb;GLc?uTN39U9&$)E}Y
z4v>6BQ@IdXnNXn+WV8M8p#vGY&X+VTxp?M-S@ST63|KP463yjuOi#=~a!hX=7NOtL4aw7gk>SF#wjc1Iy`Qz0=MmC>67{LZXiP+Md_2#a@`25y#o!vAwm&o
zLcW@loUa#o8O2R+IMlj7z7&Z>Y{h79r@JSHSdX}W_vY*?Lw5C--Nr-=3xB4VIg9Hv
zzxLConY(y{yOp!cBS;NaC+c^xrgojnBt!Dn>BNdk%34RCUXQBF!l09Pn@Kv{d*;ZQo3zrA{3mR)B#(uJbT4L-(bcq6l5VsCxcggFYS
zR#a)A34R9eSgz|3*BEGY|K@zBj@*(pj}lu!G{!v2y%z7#{gqoo+xNwb;!H}ZE~i~8
zzG(CL*2L%Kl&vIEEHU9PAnW8PRUE!
zS|1%>FJ!1tsuKLvWjbBwZeNov4?#;XI|6)h{Gsjmk-!ppdsUq5deDkr@Ds==INQmA
z^rsCkZ|~%-M@Jls{6BCXo+-*{tLYQHwhMVaq%7XS#9MdAi5E4!E&bPF$lLCIMgH0r
zcwU-0a6^x>YAZOAS9Q2&SX}6CJ)i6jHp_0eyEr=920k|kvsOFCRoW6dY@Jt2I;hCY
zCW9wjB1BQK7>)LMH*t8z^nl8QlvsSAYKJr-VmBw3oNh*8QOne$?SAg>egb_KE{?r4P$}T8lbshxLVs{%HnCs^
zV1KV4Dx&qh@2b<&AkQzFahb;Z3==4OAT}RPSNYp@F9(xKkdeg&S}`1P7YN-?BJ=xF
zrw<&guAg-Pz6Wh)7cHpAz(ZLk+bl`FYl_nsHLqi=La+e~uG#DEp}C&=NEM1H
z5E&+}UwHLP^}Zu7u;wR<^*e)ZZV~R|ymBzl4!76{*YxF@h+=JrkLK%X#_hfay^kbQ
zR85Kf#FG8TY#1E8Pp_{<6Y%+01nSVHZ1m?4Zb@@X(QW0GU&zle-woKCn+R73*m?Dl
z-=_Oq-xJ`$oaa;Dii{>5PUZWQt6}cr@Wxw!UdtgsRdwkt$|Y%QWaRCixLJy^?cY&x
z=Al2mx3M9mp)^JDjZmS2eID0~1|rLWVvE&4d5+t-`A(2?P6L*${IVu|4>vb>lt^5{
zxD5N*kY>__Noy25Vz5|_yhWvxJ}B0k#t#bIzYsstcq1Vh4ds$5Iuc@ciD7V&d%Hxf
z#YvY!;j2}T)URae=NVe@)crGfE&1ff`UWB^tU#IXP;k7>)BVYwa#gm4tx@?g@&G#Y
zWE8~ixU=WES?AD9F>LXN8t@%Jm;|}fchm{!Nyj>Vjf_m<8HIAm`rMubJOx0EMkq_p
zp$N6c<2;+`juAEl84t}Wpi|b?bEbwry#FK+N4q6KRg03D#H|?r=&umY!eT}a7E-Hx
z-Q;9WDEx%RRbKLbX?DWK%_+)m_wPnG1bAidgdbWt@fC3u#_%pAN_IY9-rM+x@m6za
zU2K#=M?U2#MKljT_I
zIq1kx0o>sl$UMB0JG8)`Cq*b;Q*0`T40)`g)V5ErZyN`U!vL{P1av`ptWw~-)ITOt
zlC!v21rxgn{|uBEd{+d&Mi8=EMF;pQ1TqX10EJaptnr;&1RX&qI?Iw3eA4v4R@
z$)I$O4hhNo$`-rA=J5D^(B$;{GBAgI(0qMnkh_Oe9r0S_poElXi;NQqUPO~&_+!qY
ztz#zUwpy5p%vkv%J?g3$tl1pVblVS1{g
zZ`WR@yFQ<$f4&$5v+%HuR%O^uhx`eY0F7xuyCI{b!z-;}|R`u3<1POy=MNzbyb%{*Z|6Xx5KwgL5oBA2-akZwlP$p@yCk)BQ`9%lQS3>A|>=vGguieWikzDW><1S*OU8VI}p^xxJG6tYD_
zI65+_D!P}0zrJAvgmdfYCPn@b}qxmhHf)NL5%Wn7gXF)#gkRb_qD5uRm-y(
z2tD8z6<@Z7-_tkdp0DpH^Ueap4O?=D!J{>ZutEb#^ht;!XoAV?X*d2QR{buqr<}qP
zxT=(h@1l8`m+%$6#R+}dsu1ZmF3?hwmCJu%0rC1yJ_IP&7xIr8r?Gx2ZjP~#vg
z`0)^1a;Gc!5Mdh5SL%Ql6_vGVfFVKUc*#G29b~KhFUL^jcZzvaEiJ}pF>19mn)v_xH~;KzajRaa}02QEZuog%p!nz{|Mc0^jvV8v04scNgUV5B#IRq*yPJ5`f9krbbEIWgv1>n-|>QxdT$=gtqBn9y}$=^*(fSH{^QY{
z_JnnJ#2~<_QK1AGjGYk7D~ZG)vA(77Sd|l-Z!v8Z@xK~SFcqMdCmqk?491Ua-|VLl
zi!x9oVIqOmqs`3rE!60Lh#f{8)DAR0BoU$`Jv#Q_{YFpiK*}|Z0n5F`JF~Oc4h~~`JlFplaV$gYG
zUh?S$@-;1*w3Mp7Xn7$1qc8D=;^c!2#-7U?@ba^e?@}xVeC!nR1fQu
zMw`{`MHqCbtg)g82x99;=qK=F!_Wo9b-}3AB+)c=lxou?k*{YXK|8CpE!KGqL?C5t
z2`-;E_Y!mtDD$9!0^|hc4gSLK91kKBu(MK-U#d*;YRDzX4FnM=mO6t#0U!jFN^YA|
zi@5ul1;>m%tEgQ(+pI8CNL?8;#
zL)1~bRINaTD5GK2q-hDICGyoIM%-T3E0L9+h{a;z7}&l@fz)#0=#mm}r>hVtUOtF^
zO@Y)IO;;7tX4WQ2^6lvs7s(tLj??SCLh>9B^Fx&kFX=52g?RuBIvd?g-VTsWM#4lX
zvL-?`k_P%_zKhq|a`je>C3JJXCpy!ydu^u1bh#`4+79__;is8J@)v_du#M2()yB#1
z&=^fM%m;-sbxTvA6GR2c%@s7QmA+Hb{7+H4o;G^sSYwp1ANta<73XV^EGf;LYmJg7>pwKpk?W#?8RPmzuQN-BPYT
zRAnpmkBv4c(Kw4v_Owbin9&5ZDU>EYbZC^0Zndz*zQ7mlLAmrpL{geddAO^#RwZry
z-@_?BgCzj;98IkM%o_$IBEtXm`Pzak?1USB
zk?s3=Y2W}N-(ybX~kHjLAB6F!T}uw$GUCh22C>%S&~fv6qvq@wiW~Mwm#K!%7mS
zJ-#>=?iq(WrlPYodba?anNao}3)I4@R^VK=!TNojtGQ;$8UL;?;V1&tv6_53ozoDs
zju6v=7rZJE#xc{>g?H*IO;Rix46_6-0*xUh8)-f9oK4=qgL>v!hXK5q8{gdfO_|%-
z_%?Ks8)=wb%=tb~_$8j>t4A*U6nY|#&*UNO|6P**6PWV9iPMrDtorR!jOCvu7U%Q&
zSIFPrg#W$Q_?LWJl4c|a=@Evn0X@Y7b0S#FGTGr-CQzT4BO5U9c)S=RMgXk*CmKiZXpK737%Y*d#GCx
z;b93(nByhgdv$%u#q4@0qYjWJFCxCBN&7Souc!hJ_S2a~5m8JqBg9<`+1J3qQpNY9BpQH45Vy>3Z=O5DNwyd7AhrNlD&hOpXq2vkM&m?J)&%|8#
zgf!k-FP1Cx*41rg1zIb
z+ILO4;=Pt?%C4zVX(vXW#7HD2&?;Qe?drghH^;Yz>^fe(!BsSehO+y1CBi)5Mf6U1
z)K|&07$V%TOeZP6N=)%Vx>uT(W{}h+C@h2K?(ij=i^<&8?jCz2{4qrB>p0QX+T>Sf
zl2nFejuufolHW*;wO6zIJPvLmZ6H=9!nyQ-TU};wWXhq$zfjI5FA6CG{{cpqbXQO|br{9>r8`b+C
z%wG@F|660fk4^Zy{BG=b`L9D1{>kK@$0+%=k}D;)MU|!hhHCC;ZPD?SJ5M?EixQV}AQ5
z{?91w|KK}5Lks_m+5SJ!e+13`2W^S*5A$3F#
literal 0
HcmV?d00001
diff --git a/docs/开题报告和任务书/完整开题报告.md b/docs/开题报告和任务书/完整开题报告.md
new file mode 100644
index 00000000..849bd50e
--- /dev/null
+++ b/docs/开题报告和任务书/完整开题报告.md
@@ -0,0 +1,131 @@
+题 目 基于DirectX 12的NanoVDB体积特效实时渲染引擎
+英文题目 Real-time Rendering Engine for NanoVDB Volume Effects Based on DirectX 12
+
+学生姓名 王子文 学号 2022302111081
+所在学院 计算机学院 专业 计算机科学与技术
+指导教师 肖春霞 职称 教授
+
+课题简介
+
+本课题研究基于DirectX 12图形API的NanoVDB稀疏体积数据实时渲染技术,旨在实现一个完整的体积特效渲染引擎。课题主要内容包括:搭建DirectX 12基础渲染框架;实现VDB文件的解析与GPU数据传输;设计基于Compute Shader的Ray Marching体积渲染算法,利用NanoVDB的空域跳过优化提升性能;集成DXR光线追踪技术实现体积阴影效果。研究方法采用文献调研、实验对比与迭代开发相结合的方式。预期成果为一个可交互的体积渲染引擎,能够实时加载并渲染VDB格式的体积数据,支持自由漫游相机和动态光照调节功能。该研究将NanoVDB数据格式与DirectX 12技术相结合,探索体积特效在游戏、VR/AR等实时应用场景中的技术实现方案。
+
+一、选题目的和意义
+
+1.1 选题背景
+随着游戏画质要求的不断提升以及虚拟现实、增强现实技术的快速发展,体积特效已经成为构建逼真虚拟世界不可或缺的核心元素。无论是电影中震撼的爆炸场景、游戏里弥漫的硝烟废墟,还是实时渲染中飘动的云层和雾气,这些效果的实现都离不开体积渲染技术的支撑。与传统的基于表面的渲染不同,体积渲染需要处理光线在介质内部的吸收、散射和自发光等复杂物理过程,其技术难度和计算开销都要高出数个量级。
+在工业界,OpenVDB已经成为存储和处理稀疏体积数据的标准格式而被广泛采用。然而,传统的高质量体积渲染严重依赖蒙特卡洛路径追踪等离线渲染技术,计算一帧往往需要数分钟甚至数小时,完全无法满足实时交互的需求。近年来,NVIDIA推出的NanoVDB通过线性化树结构大幅优化了GPU访问性能,使得稀疏体积数据在实时环境中的应用成为可能。但目前NanoVDB的官方支持主要面向CUDA生态,在Windows平台主流的DirectX 12环境下,缺乏成熟的开源实现方案,这正是本课题的研究切入点。
+
+1.2 核心问题
+
+本课题旨在实现NanoVDB稀疏体积数据在DirectX 12环境下的实时渲染,主要面临以下三个核心问题:
+
+(1)NanoVDB数据结构的DirectX 12适配。NanoVDB采用线性化树结构优化GPU访问,但其设计主要面向CUDA生态。在DirectX 12环境下,需要重新设计资源管理方案,实现VDB文件的解析加载和GPU数据传输,同时保持NanoVDB原本的内存访问效率。
+
+(2)体积渲染的性能与质量平衡。体积渲染需要在光线路径上进行密集采样计算,传统的Ray Marching算法计算量极大。如何利用NanoVDB的稀疏特性实现空域跳过,仅对含有效数据的区域进行采样,是实现实时渲染的关键技术难点。另外,体积介质中的光线传输涉及吸收、散射和自发光三种基本光学现象,其中散射的各向异性特性需要通过相位函数正确模拟。如何在保证实时性的前提下实现物理准确的着色模型,是渲染质量的核心保障。
+
+(3)渲染引擎架构设计。一个完整的体积渲染引擎涉及窗口管理、图形初始化、资源调度、渲染管线、交互系统等多个模块。如何设计合理的分层架构,使各模块职责清晰、接口明确,便于后续的功能扩展和维护,是工程实现的重要问题。
+
+1.3 解决思路
+
+首先,在数据层面,深入分析NanoVDB的内存布局结构,设计适配DirectX 12的资源管理方案。通过研究VDB文件的存储格式,实现CPU端解析到GPU端数据结构的高效转换,构建可直接用于渲染的NanoVDB访问接口。
+
+其次,在算法层面,以体积渲染方程为理论基础,在Compute Shader中实现Ray Marching体积光线投射算法。利用NanoVDB的内部索引结构实现空域跳过优化,在保证渲染质量的前提下大幅减少无效采样。着色模型方面,正确实现吸收、散射和自发光三种光学现象,其中散射采用Henyey-Greenstein相位函数处理各向异性散射效果。
+
+最后,在扩展层面,集成DXR光线追踪技术实现体积阴影和场景遮挡计算。通过构建加速结构,利用硬件加速的光线追踪计算体积中的光照衰减,提升渲染效果的物理真实性和视觉表现力。
+
+1.4 选题意义
+
+本选题的意义在于:将NanoVDB稀疏体积数据与DirectX 12图形API相结合,探索实时体积渲染的技术实现方案,为体积特效在游戏、VR/AR等交互式场景中的应用提供技术参考;同时,通过完整的工程实践,加深对体积渲染核心算法的理解,提升图形编程能力。
+
+二、国内外研究现状和发展趋势
+
+2.1 体积渲染技术发展现状
+
+体积渲染技术在计算机图形学领域有着悠久的历史,早在上世纪八十年代,Kajiya提出的渲染方程就为体积光照传输奠定了理论基础。进入二十一世纪后,随着GPU计算能力的飞速提升,实时体积渲染逐渐从理论走向实践。目前主流的实时体积渲染方案主要包括Ray Marching和体光线投射两类技术路线,前者通过在光线上进行固定步长采样来累积体积属性,后者则通过求交体积边界盒来优化采样区域。两种方案各有优劣,Ray Marching实现简单但计算量大,体光线投射效率高但需要额外的数据结构支持。
+在体积数据格式方面,OpenVDB自2012年由DreamWorks Animation开源以来,已经成为电影工业的事实标准。OpenVDB采用分级稀疏数据结构,可以高效地存储烟雾、火焰、云层等体积效果,但其在GPU上的访问效率较低。NVIDIA在2021年推出了NanoVDB,通过线性化树结构消除了指针依赖,大幅提升了GPU访问性能,成为实时渲染场景的理想选择。然而,NanoVDB官方主要提供CUDA接口,在DirectX 12和Vulkan等通用GPU API上的支持相对薄弱。
+
+2.2 DirectX 12与光线追踪技术
+
+DirectX 12是微软推出的新一代图形API,相比前代DirectX 11,它提供了更底层的GPU控制能力,允许开发者直接管理GPU资源分配和命令调度,从而最大化利用现代显卡的计算潜力。DirectX 12 Ultimate进一步引入了DXR(DirectX Raytracing)技术,使得实时光线追踪成为可能。DXR通过硬件加速的加速结构(Acceleration Structure)实现了高效的空间查询,已经在游戏和渲染领域得到广泛应用。
+在体积渲染领域,DXR的价值主要体现在两个方面。其一是加速体积与场景几何体的交互计算,如体积阴影、遮挡剔除等传统上需要额外处理的效果可以通过光线追踪自然地实现。其二是内联光线追踪(Inline Raytracing)功能的引入,使得在Compute Shader中调用TraceRay成为可能,为混合渲染架构提供了技术基础。UE5和Unity HDRP已经展示了DXR与体积渲染结合的潜力,但相关的开源实现仍然匮乏。
+
+2.3 发展趋势
+
+展望未来,体积渲染技术的发展趋势主要指向以下几个方向。首先是混合渲染架构的成熟,即结合光栅化、计算着色器和光线追踪各自的优势,在不同渲染阶段使用最适合的技术方案。其次是神经渲染技术与传统体积渲染的融合,NVIDIA提出的神经材质概念已经被拓展到体积领域,通过神经网络近似复杂的体积光照传输过程。第三是标准化和开放化的推进,随着更多开源项目的涌现,体积渲染技术的门槛将持续降低。
+
+三、研究内容、研究方法、技术路线及可行性分析
+
+3.1 研究内容
+
+本课题的研究内容可以划分为五个主要模块。第一模块是DirectX 12基础框架的搭建,包括Win32窗口系统的实现、DirectX 12设备的初始化、命令队列和描述符堆的管理,以及基础渲染管线的建立。这一模块是整个系统的基础,需要确保GPU资源能够正确分配和调度。
+第二模块是NanoVDB数据管线的设计与实现。具体包括VDB文件的解析与加载、CPU到GPU的高效数据传输机制,以及在Compute Shader中访问NanoVDB数据的采样器实现。由于NanoVDB的数据结构较为复杂,需要深入理解其内存布局才能实现高效的GPU访问。
+第三模块是体积渲染核心算法的实现。核心是以体积渲染方程为背景,基于Compute Shader的Ray Marching算法,包括光线与体积包围盒的求交、基于NanoVDB的空域跳过优化、步进采样策略,以及物理着色模型的实现。物理着色模型需要正确处理吸收、散射和自发光三种光学现象,其中散射部分还要考虑相位函数的影响。
+第四模块是DXR光线追踪技术的集成。这一模块作为可选扩展,主要实现体积阴影的计算和场景遮挡查询。通过构建加速结构,可以利用硬件加速的光线追踪来计算体积中的光照衰减,使渲染效果更加真实。
+第五模块是交互系统的设计与实现,包括自由漫游相机的控制(支持WASD移动和鼠标视角调节)、动态光源的管理(支持位置、颜色、强度调节),以及基本的画面参数调整功能。这一模块决定了用户能否直观地体验渲染效果,是系统实用性的重要保障。
+
+3.2 研究方法
+
+本课题采用的研究方法主要包括文献研究法、实验对比法和迭代开发法三种。文献研究法贯穿整个研究过程,需要系统性地研读NanoVDB官方文档、DirectX 12编程指南、DXR技术规范,以及计算机图形学领域的经典论文,特别是体积渲染和光线追踪相关的资料。通过文献研究,可以充分了解现有技术的优缺点,为系统设计提供理论支撑。
+实验对比法主要用于评估不同实现方案的性能和画质差异。例如,在Ray Marching中,步长的大小直接影响渲染质量和运行速度,需要通过实验找到合理的平衡点。又如,空域跳过策略的设计也需要通过对照实验来验证其有效性。实验对比的方法可以避免主观臆断,使设计决策更加科学。
+迭代开发法是本课题的主要开发模式。由于渲染引擎涉及多个相互依赖的模块,不可能一次性完成所有设计,因此采用快速原型、迭代完善的方式进行开发。首先实现一个最小可用的版本,验证核心技术路线可行后再逐步添加新功能。这种开发方式可以及早发现问题并调整方向,降低开发风险。
+
+3.3 技术路线
+
+整个课题的技术路线可以分为六个阶段推进。第一阶段是准备阶段,时间安排在第一周到第二周,主要完成文献调研、需求分析和系统架构设计,输出物是一份详细的设计文档,明确各模块的接口和数据流。
+第二阶段是基础框架开发,时间安排在第三周到第四周。这一阶段的目标是搭建起DirectX 12的运行环境和最基本的渲染管线。具体的交付物是一个可以正常显示窗口并完成清屏渲染的最小系统。这一阶段的难点在于理解DirectX 12的资源模型和命令提交机制。
+第三阶段是数据管线开发,时间安排在第五周到第六周。这一阶段要实现VDB文件的加载器和GPU数据传输机制。由于NanoVDB的数据结构较为复杂,需要仔细研究其存储格式,设计合理的数据转换和传输流程。交付物是能够成功加载标准VDB文件并在GPU端访问的测试程序。
+第四阶段是渲染核心开发,时间安排在第七周到第十周。这是整个课题最核心的部分,需要实现完整的Ray Marching渲染管线。包括光线与体积的求交算法、基于NanoVDB的空域跳过优化、不同类型光源的照度计算,以及最终的体积累积逻辑。这一阶段的交付物是一个能够渲染基本体积效果的完整渲染管线。
+第五阶段是交互系统开发,时间安排在第十一周到第十二周。在渲染管线的基础上添加相机控制、光照调节和参数UI等交互功能。这一阶段的重点是用户体验的优化,要确保操作流畅、反馈及时。
+第六阶段是优化收尾,时间安排在第十三周到第十六周。主要进行性能优化、功能完善和测试验收,最后撰写毕业设计说明书。性能优化可能包括分辨率缩放、降采样、混合精度等技术手段,需要根据实际情况灵活选择。
+
+3.4 可行性分析
+
+本课题在技术上可行。从硬件条件来看,实验室配备的RTX系列显卡完全支持DirectX 12和DXR的全部功能,可以满足开发需求。从软件基础来看,NanoVDB已经开源并提供了详细的文档,DirectX 12的编程接口也有丰富的教程和参考代码可供学习。从理论基础来看,体积渲染的核心算法已经有成熟的理论支撑,Ray Marching的实现也有大量开源项目可供参考。
+
+四、项目特色与创新点
+
+4.1 跨平台技术迁移
+
+本课题的首要特色在于将NanoVDB在DirectX 12环境中实现实时渲染。NanoVDB虽然在NVIDIA的推动下逐渐成为行业标准,但其官方实现主要面向CUDA编程模型,在DirectX 12环境下的适配工作需要开发者自行完成。本课题将深入研究NanoVDB的内存布局,设计适配DirectX 12的资源管理方案,实现GPU端的高效数据访问。这一工作本身具有一定的技术创新性,可以为后续研究者提供参考。
+
+4.2 分层架构设计
+
+在系统架构层面,本课题采用分层设计思想,将整个引擎划分为应用层、引擎层、渲染层和数据层四个层次。应用层负责用户交互和业务逻辑,引擎层提供窗口管理、资源调度等通用功能,渲染层专注于图形管线的实现,数据层处理文件解析和数据传输。这种分层架构的好处是各层职责明确,便于独立开发和测试,同时也为后续的功能扩展留出了空间。渲染层还实现了后端抽象,可以支持Compute Shader和DXR两种不同的渲染方案。
+
+4.3 混合渲染思路
+
+在渲染技术上,本课题尝试结合Compute Shader和DXR的混合渲染思路。Compute Shader负责体积数据的采样和累积,这是其擅长的计算密集型任务;DXR则用于体积阴影和场景遮挡的计算,利用硬件加速提升查询效率。这种混合方案可以在保证渲染质量的同时提升整体性能,是未来渲染引擎发展的主流方向。
+
+4.4 完整的工程实现
+
+本课题的目标是一个完整可用的工程系统,而非单纯的算法验证。这意味着不仅需要关注渲染效果的优劣,还要考虑代码的组织结构、模块的接口设计、错误处理机制、参数的可配置性和用户交互体验等工程实践问题。交付的代码将遵循良好的编码规范,关键模块配有详细注释,可以作为学习渲染引擎开发的参考资料。
+
+五、进度安排
+
+第1-2周: 国内外文献调研,明确需求,完成系统架构设计,撰写开题报告。
+第3-4周: 搭建DirectX 12开发环境,实现Win32窗口系统和基础渲染管线。
+第5-6周: 研究NanoVDB数据结构,实现VDB文件加载器和GPU数据传输模块。
+第7-8周: 实现Compute Shader Ray Marching核心算法,完成基础体积渲染功能。
+第9-10周: 优化渲染管线,实现空域跳过和物理着色模型,完善渲染质量。
+第11-12周: 开发交互系统,实现自由相机漫游和动态光照控制功能。
+第13-14周: 性能调优和测试,完善功能,撰写毕业设计说明书初稿。
+第15-16周: 论文修改定稿,准备答辩演示,进行项目验收。
+
+六、主要参考文献
+
+\[1] Museth K. NanoVDB: A GPU-Friendly and Portable VDB Data Structure for Real-Time Rendering and Simulation\[J]. ACM Transactions on Graphics, 2021, 40(4): 1-16.
+
+\[2] NVIDIA. Accelerating OpenVDB on GPUs with NanoVDB\[EB/OL]. NVIDIA Developer Blog, 2021.
+
+\[3] Microsoft. DirectX 12 Graphics Programming Guide\[EB/OL]. Microsoft Docs, 2024.
+
+\[4] Microsoft. DirectX Raytracing (DXR) Technical Specification\[EB/OL]. Microsoft Docs, 2024.
+
+\[5] Kajiya J F. The Rendering Equation\[J]. Computer Graphics, 1986, 20(4): 143-150.
+
+\[6] Max N. Efficient Light Propagation for Multiple Anisotropic Scattering in Semi-Transparent Media\[J]. Journal of Graphics Tools, 1995, 2(3): 21-32.
+
+\[7] Wihlidal C. Optimizing the Graphics Pipeline with Compute\[C]//Game Developers Conference 2019, 2019.
+
+\[8] Clarberg P, Hasselgren T, Toth R, et al. Real-time Neural Appearance Models\[C]//SIGGRAPH 2023, 2023.
+
diff --git a/docs/开题报告和任务书/开题报告-王子文.doc b/docs/开题报告和任务书/开题报告-王子文.doc
new file mode 100644
index 00000000..2bde9551
--- /dev/null
+++ b/docs/开题报告和任务书/开题报告-王子文.doc
@@ -0,0 +1,3 @@
+
+
+武汉大学本科毕业设计(论文)开题报告题 目基于DirectX 12的NanoVDB体积渲染引擎设计与实现学生姓名王子文学号2022302111081所在学院计算机学院专业计算机科学与技术指导教师肖春霞职称教授一、选题目的和意义1.1 选题背景随着游戏画质要求的不断提升以及虚拟现实、增强现实技术的快速发展,体积特效已经成为构建逼真虚拟世界不可或缺的核心元素。无论是电影中震撼的爆炸场景、游戏里弥漫的硝烟废墟,还是实时渲染中飘动的云层和雾气,这些效果的实现都离不开体积渲染技术的支撑。与传统的基于表面的渲染不同,体积渲染需要处理光线在介质内部的吸收、散射和自发光等复杂物理过程,其技术难度和计算开销都要高出数个量级。在工业界,OpenVDB已经成为存储和处理稀疏体积数据的标准格式而被广泛采用。然而,传统的高质量体积渲染严重依赖蒙特卡洛路径追踪等离线渲染技术,计算一帧往往需要数分钟甚至数小时,完全无法满足实时交互的需求。近年来,NVIDIA推出的NanoVDB通过线性化树结构大幅优化了GPU访问性能,使得稀疏体积数据在实时环境中的应用成为可能。但目前NanoVDB的官方支持主要面向CUDA生态,在Windows平台主流的DirectX 12环境下,缺乏成熟的开源实现方案,这正是本课题的研究切入点。1.2 核心问题本课题旨在实现NanoVDB稀疏体积数据在DirectX 12环境下的实时渲染,主要面临以下三个核心问题:(1)NanoVDB数据结构的DirectX 12适配。NanoVDB采用线性化树结构优化GPU访问,但其设计主要面向CUDA生态。在DirectX 12环境下,需要重新设计资源管理方案,实现VDB文件的解析加载和GPU数据传输,同时保持NanoVDB原本的内存访问效率。(2)体积渲染的性能与质量平衡。体积渲染需要在光线路径上进行密集采样计算,传统的Ray Marching算法计算量极大。如何利用NanoVDB的稀疏特性实现空域跳过,仅对含有效数据的区域进行采样,是实现实时渲染的关键技术难点。另外,体积介质中的光线传输涉及吸收、散射和自发光三种基本光学现象,其中散射的各向异性特性需要通过相位函数正确模拟。如何在保证实时性的前提下实现物理准确的着色模型,是渲染质量的核心保障。(3)渲染引擎架构设计。一个完整的体积渲染引擎涉及窗口管理、图形初始化、资源调度、渲染管线、交互系统等多个模块。如何设计合理的分层架构,使各模块职责清晰、接口明确,便于后续的功能扩展和维护,是工程实现的重要问题。1.3 解决思路首先,在数据层面,深入分析NanoVDB的内存布局结构,设计适配DirectX 12的资源管理方案。通过研究VDB文件的存储格式,实现CPU端解析到GPU端数据结构的高效转换,构建可直接用于渲染的NanoVDB访问接口。其次,在算法层面,以体积渲染方程为理论基础,在Compute Shader中实现Ray Marching体积光线投射算法。利用NanoVDB的内部索引结构实现空域跳过优化,在保证渲染质量的前提下大幅减少无效采样。着色模型方面,正确实现吸收、散射和自发光三种光学现象,其中散射采用Henyey-Greenstein相位函数处理各向异性散射效果。最后,在扩展层面,集成DXR光线追踪技术实现体积阴影和场景遮挡计算。通过构建加速结构,利用硬件加速的光线追踪计算体积中的光照衰减,提升渲染效果的物理真实性和视觉表现力。1.4 选题意义本选题的意义在于:将NanoVDB稀疏体积数据与DirectX 12图形API相结合,探索实时体积渲染的技术实现方案,为体积特效在游戏、VR/AR等交互式场景中的应用提供技术参考;同时,通过完整的工程实践,加深对体积渲染核心算法的理解,提升图形编程能力。二、国内外研究现状和发展趋势2.1 体积渲染技术发展现状体积渲染技术在计算机图形学领域有着悠久的历史,早在上世纪八十年代,Kajiya提出的渲染方程就为体积光照传输奠定了理论基础。进入二十一世纪后,随着GPU计算能力的飞速提升,实时体积渲染逐渐从理论走向实践。目前主流的实时体积渲染方案主要包括Ray Marching和体光线投射两类技术路线,前者通过在光线上进行固定步长采样来累积体积属性,后者则通过求交体积边界盒来优化采样区域。两种方案各有优劣,Ray Marching实现简单但计算量大,体光线投射效率高但需要额外的数据结构支持。在体积数据格式方面,OpenVDB自2012年由DreamWorks Animation开源以来,已经成为电影工业的事实标准。OpenVDB采用分级稀疏数据结构,可以高效地存储烟雾、火焰、云层等体积效果,但其在GPU上的访问效率较低。NVIDIA在2021年推出了NanoVDB,通过线性化树结构消除了指针依赖,大幅提升了GPU访问性能,成为实时渲染场景的理想选择。然而,NanoVDB官方主要提供CUDA接口,在DirectX 12和Vulkan等通用GPU API上的支持相对薄弱。2.2 DirectX 12与光线追踪技术DirectX 12是微软推出的新一代图形API,相比前代DirectX 11,它提供了更底层的GPU控制能力,允许开发者直接管理GPU资源分配和命令调度,从而最大化利用现代显卡的计算潜力。DirectX 12 Ultimate进一步引入了DXR(DirectX Raytracing)技术,使得实时光线追踪成为可能。DXR通过硬件加速的加速结构(Acceleration Structure)实现了高效的空间查询,已经在游戏和渲染领域得到广泛应用。在体积渲染领域,DXR的价值主要体现在两个方面。其一是加速体积与场景几何体的交互计算,如体积阴影、遮挡剔除等传统上需要额外处理的效果可以通过光线追踪自然地实现。其二是内联光线追踪(Inline Raytracing)功能的引入,使得在Compute Shader中调用TraceRay成为可能,为混合渲染架构提供了技术基础。UE5和Unity HDRP已经展示了DXR与体积渲染结合的潜力,但相关的开源实现仍然匮乏。2.3 发展趋势展望未来,体积渲染技术的发展趋势主要指向以下几个方向。首先是混合渲染架构的成熟,即结合光栅化、计算着色器和光线追踪各自的优势,在不同渲染阶段使用最适合的技术方案。其次是神经渲染技术与传统体积渲染的融合,NVIDIA提出的神经材质概念已经被拓展到体积领域,通过神经网络近似复杂的体积光照传输过程。第三是标准化和开放化的推进,随着更多开源项目的涌现,体积渲染技术的门槛将持续降低。三、研究内容、研究方法、技术路线及可行性分析3.1 研究内容本课题的研究内容可以划分为五个主要模块。第一模块是DirectX 12基础框架的搭建,包括Win32窗口系统的实现、DirectX 12设备的初始化、命令队列和描述符堆的管理,以及基础渲染管线的建立。这一模块是整个系统的基础,需要确保GPU资源能够正确分配和调度。第二模块是NanoVDB数据管线的设计与实现。具体包括VDB文件的解析与加载、CPU到GPU的高效数据传输机制,以及在Compute Shader中访问NanoVDB数据的采样器实现。由于NanoVDB的数据结构较为复杂,需要深入理解其内存布局才能实现高效的GPU访问。第三模块是体积渲染核心算法的实现。核心是以体积渲染方程为背景,基于Compute Shader的Ray Marching算法,包括光线与体积包围盒的求交、基于NanoVDB的空域跳过优化、步进采样策略,以及物理着色模型的实现。物理着色模型需要正确处理吸收、散射和自发光三种光学现象,其中散射部分还要考虑相位函数的影响。第四模块是DXR光线追踪技术的集成。这一模块作为可选扩展,主要实现体积阴影的计算和场景遮挡查询。通过构建加速结构,可以利用硬件加速的光线追踪来计算体积中的光照衰减,使渲染效果更加真实。第五模块是交互系统的设计与实现,包括自由漫游相机的控制(支持WASD移动和鼠标视角调节)、动态光源的管理(支持位置、颜色、强度调节),以及基本的画面参数调整功能。这一模块决定了用户能否直观地体验渲染效果,是系统实用性的重要保障。3.2 研究方法本课题采用的研究方法主要包括文献研究法、实验对比法和迭代开发法三种。文献研究法贯穿整个研究过程,需要系统性地研读NanoVDB官方文档、DirectX 12编程指南、DXR技术规范,以及计算机图形学领域的经典论文,特别是体积渲染和光线追踪相关的资料。通过文献研究,可以充分了解现有技术的优缺点,为系统设计提供理论支撑。实验对比法主要用于评估不同实现方案的性能和画质差异。例如,在Ray Marching中,步长的大小直接影响渲染质量和运行速度,需要通过实验找到合理的平衡点。又如,空域跳过策略的设计也需要通过对照实验来验证其有效性。实验对比的方法可以避免主观臆断,使设计决策更加科学。迭代开发法是本课题的主要开发模式。由于渲染引擎涉及多个相互依赖的模块,不可能一次性完成所有设计,因此采用快速原型、迭代完善的方式进行开发。首先实现一个最小可用的版本,验证核心技术路线可行后再逐步添加新功能。这种开发方式可以及早发现问题并调整方向,降低开发风险。3.3 技术路线整个课题的技术路线可以分为六个阶段推进。第一阶段是准备阶段,时间安排在第一周到第二周,主要完成文献调研、需求分析和系统架构设计,输出物是一份详细的设计文档,明确各模块的接口和数据流。第二阶段是基础框架开发,时间安排在第三周到第四周。这一阶段的目标是搭建起DirectX 12的运行环境和最基本的渲染管线。具体的交付物是一个可以正常显示窗口并完成清屏渲染的最小系统。这一阶段的难点在于理解DirectX 12的资源模型和命令提交机制。第三阶段是数据管线开发,时间安排在第五周到第六周。这一阶段要实现VDB文件的加载器和GPU数据传输机制。由于NanoVDB的数据结构较为复杂,需要仔细研究其存储格式,设计合理的数据转换和传输流程。交付物是能够成功加载标准VDB文件并在GPU端访问的测试程序。第四阶段是渲染核心开发,时间安排在第七周到第十周。这是整个课题最核心的部分,需要实现完整的Ray Marching渲染管线。包括光线与体积的求交算法、基于NanoVDB的空域跳过优化、不同类型光源的照度计算,以及最终的体积累积逻辑。这一阶段的交付物是一个能够渲染基本体积效果的完整渲染管线。第五阶段是交互系统开发,时间安排在第十一周到第十二周。在渲染管线的基础上添加相机控制、光照调节和参数UI等交互功能。这一阶段的重点是用户体验的优化,要确保操作流畅、反馈及时。第六阶段是优化收尾,时间安排在第十三周到第十六周。主要进行性能优化、功能完善和测试验收,最后撰写毕业设计说明书。性能优化可能包括分辨率缩放、降采样、混合精度等技术手段,需要根据实际情况灵活选择。3.4 可行性分析本课题在技术上可行。从硬件条件来看,实验室配备的RTX系列显卡完全支持DirectX 12和DXR的全部功能,可以满足开发需求。从软件基础来看,NanoVDB已经开源并提供了详细的文档,DirectX 12的编程接口也有丰富的教程和参考代码可供学习。从理论基础来看,体积渲染的核心算法已经有成熟的理论支撑,Ray Marching的实现也有大量开源项目可供参考。四、项目特色与创新点4.1 跨平台技术迁移本课题的首要特色在于将NanoVDB在DirectX 12环境中实现实时渲染。NanoVDB虽然在NVIDIA的推动下逐渐成为行业标准,但其官方实现主要面向CUDA编程模型,在DirectX 12环境下的适配工作需要开发者自行完成。本课题将深入研究NanoVDB的内存布局,设计适配DirectX 12的资源管理方案,实现GPU端的高效数据访问。这一工作本身具有一定的技术创新性,可以为后续研究者提供参考。4.2 分层架构设计在系统架构层面,本课题采用分层设计思想,将整个引擎划分为应用层、引擎层、渲染层和数据层四个层次。应用层负责用户交互和业务逻辑,引擎层提供窗口管理、资源调度等通用功能,渲染层专注于图形管线的实现,数据层处理文件解析和数据传输。这种分层架构的好处是各层职责明确,便于独立开发和测试,同时也为后续的功能扩展留出了空间。渲染层还实现了后端抽象,可以支持Compute Shader和DXR两种不同的渲染方案。4.3 混合渲染思路在渲染技术上,本课题尝试结合Compute Shader和DXR的混合渲染思路。Compute Shader负责体积数据的采样和累积,这是其擅长的计算密集型任务;DXR则用于体积阴影和场景遮挡的计算,利用硬件加速提升查询效率。这种混合方案可以在保证渲染质量的同时提升整体性能,是未来渲染引擎发展的主流方向。4.4 完整的工程实现本课题的目标是一个完整可用的工程系统,而非单纯的算法验证。这意味着不仅需要关注渲染效果的优劣,还要考虑代码的组织结构、模块的接口设计、错误处理机制、参数的可配置性和用户交互体验等工程实践问题。交付的代码将遵循良好的编码规范,关键模块配有详细注释,可以作为学习渲染引擎开发的参考资料。五、进度安排第1-2周: 国内外文献调研,明确需求,完成系统架构设计,撰写开题报告。第3-4周: 搭建DirectX 12开发环境,实现Win32窗口系统和基础渲染管线。第5-6周: 研究NanoVDB数据结构,实现VDB文件加载器和GPU数据传输模块。第7-8周: 实现Compute Shader Ray Marching核心算法,完成基础体积渲染功能。第9-10周: 优化渲染管线,实现空域跳过和物理着色模型,完善渲染质量。第11-12周: 开发交互系统,实现自由相机漫游和动态光照控制功能。第13-14周: 性能调优和测试,完善功能,撰写毕业设计说明书初稿。第15-16周: 论文修改定稿,准备答辩演示,进行项目验收。六、主要参考文献[1] Museth K. NanoVDB: A GPU-Friendly and Portable VDB Data Structure for Real-Time Rendering and Simulation[J]. ACM Transactions on Graphics, 2021, 40(4): 1-16.[2] NVIDIA. Accelerating OpenVDB on GPUs with NanoVDB[EB/OL]. NVIDIA Developer Blog, 2021.[3] Microsoft. DirectX 12 Graphics Programming Guide[EB/OL]. Microsoft Docs, 2024.[4] Microsoft. DirectX Raytracing (DXR) Technical Specification[EB/OL]. Microsoft Docs, 2024.[5] Kajiya J F. The Rendering Equation[J]. Computer Graphics, 1986, 20(4): 143-150.[6] Max N. Efficient Light Propagation for Multiple Anisotropic Scattering in Semi-Transparent Media[J]. Journal of Graphics Tools, 1995, 2(3): 21-32.[7] Wihlidal C. Optimizing the Graphics Pipeline with Compute[C]//Game Developers Conference 2019, 2019.[8] Clarberg P, Hasselgren T, Toth R, et al. Real-time Neural Appearance Models[C]//SIGGRAPH 2023, 2023.Normal.dotmMicrosoft925133737111falsefalse4005WPS Office_12.1.0.25225_F1E327BC-269C-435d-A152-05C5408002CA02022-11-23T08:41:00ZJSFW001WPS_16596162452026-03-10T04:24:09Z 2eyJoZGlkIjoiYWY4ZTYzNmU3MjAxOGQ1YzRlN2QwZjgxYzg0MWIxYTYiLCJ1c2VySWQiOiIxMzk2Mjg3NjE4In0=2052-12.1.0.252257F063531399F45D6A87B820A74E5EA18_12
\ No newline at end of file
diff --git a/docs/旧版题目/开题报告-王子文.doc b/docs/旧版题目/开题报告-王子文.doc
new file mode 100644
index 00000000..4661a243
--- /dev/null
+++ b/docs/旧版题目/开题报告-王子文.doc
@@ -0,0 +1,3 @@
+
+
+武汉大学本科毕业设计(论文)开题报告题 目神经着色驱动的VDB特效实时渲染学生姓名王子文学号2022302111081所在学院计算机学院专业计算机科学与技术指导教师肖春霞职称教授一、选题目的和意义1.1 选题背景3D渲染技术正经历着从传统的“基于物理的建模(Physically Based Rendering, PBR)”向“神经网络渲染(Neural Rendering)”的范式转变。神经网络渲染融合了机器学习与计算机图形学,利用深度神经网络高效拟合复杂的光线传输过程,能够在不依赖繁重物理积分的情况下逼近真实世界的视觉效果。在这一背景下,体积特效(Volumetric Effects)如烟雾、火焰、云层和爆炸等,作为构建逼真虚拟世界的关键元素,其渲染技术的革新尤为迫切。目前,工业界主要采用 OpenVDB 格式来存储和处理这些复杂的稀疏体积数据。然而,传统的高质量体积渲染严重依赖于蒙特卡洛路径追踪(Monte Carlo Path Tracing),其计算复杂度极高,往往需要数分钟甚至数小时才能渲染一帧,这限制了其在实时交互应用(如游戏、VR/AR)中的使用。1.2 核心问题随着硬件性能的提升,原本用于离线影视级渲染的 VDB 数据,正逐渐向游戏引擎等实时渲染环境迁移。然而,这一迁移过程面临巨大挑战。现有的实时体积渲染方案(如 Ray Marching)通常为了性能而牺牲画质,难以复现离线渲染中复杂的光照效果(如多次散射、各向异性散射)。同时,高精度的 VDB 数据占用的显存空间巨大,难以在消费级显卡上流畅运行。如何兼顾“电影级画质”与“实时帧率”,同时降低存储开销,是实现这一行业迁移的关键难题。1.3 解决思路与意义本课题旨在借鉴 NVIDIA “神经材质(Neural Materials)” 的核心思想,并将其创新性地应用于体积(Volume)渲染领域。通过构建一个轻量级的神经网络(神经体积着色器),将复杂的体积光传输计算(Radiative Transfer)“烘焙”到网络权重中。本选题的意义在于:突破性能瓶颈:利用神经网络(MLP)强大的拟合能力替代复杂的物理积分计算,结合 Tensor Core 硬件加速,实现体积特效的实时推理渲染。提升实时画质:使实时引擎能够呈现原本仅存于离线渲染中的复杂光照细节,推动游戏画质向电影级迈进。二、国内外研究现状和发展趋势2.1 稀疏体积数据结构(OpenVDB & NanoVDB)OpenVDB(Museth, 2013)是电影工业的标准体积格式,但在 GPU 上运行效率较低。NVIDIA 推出的 NanoVDB(Museth, 2021)通过线性化树结构优化了 GPU 访问性能,成为实时渲染的理想载体。然而,NanoVDB 仅解决了“数据存储与访问”的问题,并未解决“光照计算复杂”的问题。2.2 神经渲染与神经着色(Neural Rendering & Shading)近年来,神经辐射场(NeRF, Mildenhall et al., 2020)展示了神经网络在视图合成上的强大能力。然而,当前大多数神经渲染方法仍依赖图像输入,缺乏对原始几何和物理材质信息的显式支持,这种“黑盒”特性限制了其在标准图形管线中的集成与编辑。针对这一问题,NVIDIA 的 Neural Materials(Rainier et al., 2022; Clarberg et al., 2023)提出了一种新范式:将复杂的表面材质模型压缩为小型 MLP,在着色器中实时运行。这种方法在保留影视级材质细节的同时,实现了 10 倍以上的性能提升和纹理压缩。2.3 发展趋势目前的趋势是将“神经材质”的成功经验从“表面(Surface)”向“体积(Volume)”拓展。即利用 NanoVDB 的稀疏结构来跳过空白区域(Space Skipping),利用神经网络来近似非线性的体积属性映射(Neural Shading)。这种结合了“显式结构加速”与“隐式计算加速”的混合管线,是未来实时渲染的重要方向。三、研究内容、研究方法、技术路线及可行性分析3.1 研究内容NanoVDB 数据管线构建:研究 OpenVDB 到 NanoVDB 的转换流程,实现稀疏体积数据在 GPU 上的高效加载与采样。神经体积着色器(Neural Volume Shader)设计:设计一个轻量级的 MLP 网络,用于替代传统的体积着色方程。输入:归一化空间坐标 (x,y,z)、视线方向、光照方向 、以及 NanoVDB 采样的基础属性(密度、温度等)。输出:物理光学参数,包括吸收系数、散射系数、自发光辐射率和相位函数参数。混合监督训练策略:构建基于物理的损失函数,结合 L1/L2 图像损失与物理约束(如能量守恒),确保网络输出不仅视觉逼真,且符合物理规律。Unity 实时渲染集成:在 Unity 引擎中编写 Compute Shader 或利用 TensorRT,将训练好的网络集成到渲染管线中,实现实时交互。3.2 研究方法文献研究法:深入研读 NanoVDB 源码及 Neural Materials 相关论文。实验对比法:以 Houdini + Arnold 渲染结果为 Ground Truth(真值),对比本方法与传统 Ray Marching 的画质差异(PSNR/SSIM)及帧率表现。控制变量法:探究网络层数、通道数对渲染质量与推理速度的影响。3.3 技术路线数据准备:使用 Houdini 制作烟雾/火焰特效,导出 .vdb 文件;使用 Arnold 渲染多角度、多光照条件下的高质图像作为训练集。预处理:将 .vdb 转换为 .nvdb 格式,提取稀疏体素特征。模型训练 (PyTorch):构建 MLP 网络(如 4层 x 64宽)。利用 CUDA 加速的 NanoVDB 采样器进行射线步进采样。计算预测值与 GT 的损失,反向传播更新权重。引擎部署 (Unity):将训练好的权重导出为二进制或 ONNX。在 Unity Shader 中实现 MLP 推理逻辑(前向传播)。结合 NanoVDB 的光线求交(Ray Casting)进行实时渲染。3.4 可行性分析硬件支持:实验室配备 RTX 系列显卡,支持 Tensor Core 加速和 CUDA 编程。软件基础:NanoVDB 已开源且支持 C++/CUDA;PyTorch 框架成熟;Unity 支持 Compute Shader 自定义渲染。理论支撑:辐射传输方程(RTE)理论成熟,Neural Materials 已验证了 MLP 拟合着色方程的可行性。四、项目特色与创新点跨域技术迁移(创新性):将 NVIDIA Neural Materials 在“表面材质”上的成功范式,迁移创新至“体积渲染”领域,提出“神经体积着色器”概念。稀疏-神经混合架构与几何解耦:结合 NanoVDB 的“空间稀疏性”与神经网络的“计算紧凑性”,不仅实现了存储与计算的双重优化,更实现了几何结构(NanoVDB)与外观材质(Neural Shader)的解耦。这解决了传统神经渲染方法难以编辑几何形状的痛点,支持在保持几何不变的情况下调整材质,或在保持材质风格的情况下修改几何。物理可解释性:网络输出的是中间光学参数(如散射系数)而非最终像素颜色,这使得渲染结果可以与动态光照环境交互(Relighting),保留了物理着色的灵活性。五、进度安排第1-2周:查阅文献,熟悉 NanoVDB 数据结构与 PyTorch 框架,完成开题报告。第3-4周:搭建 Houdini 数据生成管线,制作数据集,完成 VDB 到 NanoVDB 的转换测试。第5-8周:设计并实现神经体积着色器网络,在 PyTorch 中完成训练与验证,优化损失函数。第9-12周:将训练好的模型集成至 Unity 引擎,编写实时渲染 Shader,进行性能调优。第13-14周:撰写毕业论文,整理实验数据与对比结果。第15-16周:论文修改定稿,准备答辩演示。六、主要参考文献Museth, K. (2021). NanoVDB: A GPU-Friendly and Portable VDB Data Structure For Real-Time Rendering And Simulation. ACM Transactions on Graphics (TOG), 40(4).Lombardi, S., et al. (2019). Neural Volumes: Learning Dynamic Renderable Volumes from Images. ACM Transactions on Graphics (TOG), 38(4).Rainier, G., et al. (2022). Neural Materials: Unified Spectral Rendering of Layered Materials. Computer Graphics Forum.Clarberg, P., et al. (2023). Real-time Neural Appearance Models. SIGGRAPH 2023.Mildenhall, B., et al. (2020). NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis. ECCV.NVIDIA. RTX Neural Shaders & Neural Materials SDK Documentation.Normal.dotmMicrosoft7251337371130falsefalse4005WPS Office_12.1.0.24034_F1E327BC-269C-435d-A152-05C5408002CA02022-11-23T08:41:00ZJSFW001WPS_16596162452025-12-31T11:48:55Z 2eyJoZGlkIjoiYWY4ZTYzNmU3MjAxOGQ1YzRlN2QwZjgxYzg0MWIxYTYiLCJ1c2VySWQiOiIxMzk2Mjg3NjE4In0=2052-12.1.0.240347F063531399F45D6A87B820A74E5EA18_12
\ No newline at end of file
diff --git a/docs/旧版题目/开题报告-王子文.md b/docs/旧版题目/开题报告-王子文.md
new file mode 100644
index 00000000..e48394a0
--- /dev/null
+++ b/docs/旧版题目/开题报告-王子文.md
@@ -0,0 +1,180 @@
+\# 武汉大学本科毕业设计(论文)开题报告
+
+| 项目 | 信息 |
+
+| ---- | ---- |
+
+| 题 目 | 神经着色驱动的VDB特效实时渲染 |
+
+| 学生姓名 | 王子文 |
+
+| 学号 | 2022302111081 |
+
+| 所在学院 | 计算机学院 |
+
+| 专业 | 计算机科学与技术 |
+
+| 指导教师 | 肖春霞 |
+
+| 职称 | 教授 |
+
+
+
+\## 一、选题目的和意义
+
+\### 1.1 选题背景
+
+3D渲染技术正经历着从传统的“基于物理的建模(Physically Based Rendering, PBR)”向“神经网络渲染(Neural Rendering)”的范式转变。神经网络渲染融合了机器学习与计算机图形学,利用深度神经网络高效拟合复杂的光线传输过程,能够在不依赖繁重物理积分的情况下逼近真实世界的视觉效果。
+
+
+
+在这一背景下,体积特效(Volumetric Effects)如烟雾、火焰、云层和爆炸等,作为构建逼真虚拟世界的关键元素,其渲染技术的革新尤为迫切。目前,工业界主要采用 OpenVDB 格式来存储和处理这些复杂的稀疏体积数据。然而,传统的高质量体积渲染严重依赖于蒙特卡洛路径追踪(Monte Carlo Path Tracing),其计算复杂度极高,往往需要数分钟甚至数小时才能渲染一帧,这限制了其在实时交互应用(如游戏、VR/AR)中的使用。
+
+
+
+\### 1.2 核心问题
+
+随着硬件性能的提升,原本用于离线影视级渲染的 VDB 数据,正逐渐向游戏引擎等实时渲染环境迁移。然而,这一迁移过程面临巨大挑战。现有的实时体积渲染方案(如 Ray Marching)通常为了性能而牺牲画质,难以复现离线渲染中复杂的光照效果(如多次散射、各向异性散射)。同时,高精度的 VDB 数据占用的显存空间巨大,难以在消费级显卡上流畅运行。如何兼顾“电影级画质”与“实时帧率”,同时降低存储开销,是实现这一行业迁移的关键难题。
+
+
+
+\### 1.3 解决思路与意义
+
+本课题旨在借鉴 NVIDIA “神经材质(Neural Materials)” 的核心思想,并将其创新性地应用于体积(Volume)渲染领域。通过构建一个轻量级的神经网络(神经体积着色器),将复杂的体积光传输计算(Radiative Transfer)“烘焙”到网络权重中。
+
+
+
+本选题的意义在于:
+
+突破性能瓶颈:利用神经网络(MLP)强大的拟合能力替代复杂的物理积分计算,结合 Tensor Core 硬件加速,实现体积特效的实时推理渲染。
+
+提升实时画质:使实时引擎能够呈现原本仅存于离线渲染中的复杂光照细节,推动游戏画质向电影级迈进。
+
+
+
+\## 二、国内外研究现状和发展趋势
+
+\### 2.1 稀疏体积数据结构(OpenVDB \& NanoVDB)
+
+OpenVDB(Museth, 2013)是电影工业的标准体积格式,但在 GPU 上运行效率较低。NVIDIA 推出的 NanoVDB(Museth, 2021)通过线性化树结构优化了 GPU 访问性能,成为实时渲染的理想载体。然而,NanoVDB 仅解决了“数据存储与访问”的问题,并未解决“光照计算复杂”的问题。
+
+
+
+\### 2.2 神经渲染与神经着色(Neural Rendering \& Shading)
+
+近年来,神经辐射场(NeRF, Mildenhall et al., 2020)展示了神经网络在视图合成上的强大能力。然而,当前大多数神经渲染方法仍依赖图像输入,缺乏对原始几何和物理材质信息的显式支持,这种“黑盒”特性限制了其在标准图形管线中的集成与编辑。
+
+
+
+针对这一问题,NVIDIA 的 Neural Materials(Rainier et al., 2022; Clarberg et al., 2023)提出了一种新范式:将复杂的表面材质模型压缩为小型 MLP,在着色器中实时运行。这种方法在保留影视级材质细节的同时,实现了 10 倍以上的性能提升和纹理压缩。
+
+
+
+\### 2.3 发展趋势
+
+目前的趋势是将“神经材质”的成功经验从“表面(Surface)”向“体积(Volume)”拓展。即利用 NanoVDB 的稀疏结构来跳过空白区域(Space Skipping),利用神经网络来近似非线性的体积属性映射(Neural Shading)。这种结合了“显式结构加速”与“隐式计算加速”的混合管线,是未来实时渲染的重要方向。
+
+
+
+\## 三、研究内容、研究方法、技术路线及可行性分析
+
+\### 3.1 研究内容
+
+NanoVDB 数据管线构建:研究 OpenVDB 到 NanoVDB 的转换流程,实现稀疏体积数据在 GPU 上的高效加载与采样。
+
+神经体积着色器(Neural Volume Shader)设计:设计一个轻量级的 MLP 网络,用于替代传统的体积着色方程。
+
+输入:归一化空间坐标 (x,y,z)、视线方向、光照方向 、以及 NanoVDB 采样的基础属性(密度、温度等)。
+
+输出:物理光学参数,包括吸收系数、散射系数、自发光辐射率和相位函数参数。
+
+混合监督训练策略:构建基于物理的损失函数,结合 L1/L2 图像损失与物理约束(如能量守恒),确保网络输出不仅视觉逼真,且符合物理规律。
+
+Unity 实时渲染集成:在 Unity 引擎中编写 Compute Shader 或利用 TensorRT,将训练好的网络集成到渲染管线中,实现实时交互。
+
+
+
+\### 3.2 研究方法
+
+文献研究法:深入研读 NanoVDB 源码及 Neural Materials 相关论文。
+
+实验对比法:以 Houdini + Arnold 渲染结果为 Ground Truth(真值),对比本方法与传统 Ray Marching 的画质差异(PSNR/SSIM)及帧率表现。
+
+控制变量法:探究网络层数、通道数对渲染质量与推理速度的影响。
+
+
+
+\### 3.3 技术路线
+
+数据准备:使用 Houdini 制作烟雾/火焰特效,导出 .vdb 文件;使用 Arnold 渲染多角度、多光照条件下的高质图像作为训练集。
+
+预处理:将 .vdb 转换为 .nvdb 格式,提取稀疏体素特征。
+
+模型训练 (PyTorch):
+
+构建 MLP 网络(如 4层 x 64宽)。
+
+利用 CUDA 加速的 NanoVDB 采样器进行射线步进采样。
+
+计算预测值与 GT 的损失,反向传播更新权重。
+
+引擎部署 (Unity):
+
+将训练好的权重导出为二进制或 ONNX。
+
+在 Unity Shader 中实现 MLP 推理逻辑(前向传播)。
+
+结合 NanoVDB 的光线求交(Ray Casting)进行实时渲染。
+
+
+
+\### 3.4 可行性分析
+
+硬件支持:实验室配备 RTX 系列显卡,支持 Tensor Core 加速和 CUDA 编程。
+
+软件基础:NanoVDB 已开源且支持 C++/CUDA;PyTorch 框架成熟;Unity 支持 Compute Shader 自定义渲染。
+
+理论支撑:辐射传输方程(RTE)理论成熟,Neural Materials 已验证了 MLP 拟合着色方程的可行性。
+
+
+
+\## 四、项目特色与创新点
+
+跨域技术迁移(创新性):将 NVIDIA Neural Materials 在“表面材质”上的成功范式,迁移创新至“体积渲染”领域,提出“神经体积着色器”概念。
+
+稀疏-神经混合架构与几何解耦:结合 NanoVDB 的“空间稀疏性”与神经网络的“计算紧凑性”,不仅实现了存储与计算的双重优化,更实现了几何结构(NanoVDB)与外观材质(Neural Shader)的解耦。这解决了传统神经渲染方法难以编辑几何形状的痛点,支持在保持几何不变的情况下调整材质,或在保持材质风格的情况下修改几何。
+
+物理可解释性:网络输出的是中间光学参数(如散射系数)而非最终像素颜色,这使得渲染结果可以与动态光照环境交互(Relighting),保留了物理着色的灵活性。
+
+
+
+\## 五、进度安排
+
+第1-2周:查阅文献,熟悉 NanoVDB 数据结构与 PyTorch 框架,完成开题报告。
+
+第3-4周:搭建 Houdini 数据生成管线,制作数据集,完成 VDB 到 NanoVDB 的转换测试。
+
+第5-8周:设计并实现神经体积着色器网络,在 PyTorch 中完成训练与验证,优化损失函数。
+
+第9-12周:将训练好的模型集成至 Unity 引擎,编写实时渲染 Shader,进行性能调优。
+
+第13-14周:撰写毕业论文,整理实验数据与对比结果。
+
+第15-16周:论文修改定稿,准备答辩演示。
+
+
+
+\## 六、主要参考文献
+
+1\. Museth, K. (2021). NanoVDB: A GPU-Friendly and Portable VDB Data Structure For Real-Time Rendering And Simulation. ACM Transactions on Graphics (TOG), 40(4).
+
+2\. Lombardi, S., et al. (2019). Neural Volumes: Learning Dynamic Renderable Volumes from Images. ACM Transactions on Graphics (TOG), 38(4).
+
+3\. Rainier, G., et al. (2022). Neural Materials: Unified Spectral Rendering of Layered Materials. Computer Graphics Forum.
+
+4\. Clarberg, P., et al. (2023). Real-time Neural Appearance Models. SIGGRAPH 2023.
+
+5\. Mildenhall, B., et al. (2020). NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis. ECCV.
+
+6\. NVIDIA. RTX Neural Shaders \& Neural Materials SDK Documentation.
+