簡體   English   中英

mathematica Graphics3D中的陰影

[英]Shadows in mathematica Graphics3D

如果我理解Mathematica文檔是正確的(也沒有找到示例)Graphics3D不會產生3D對象的陰影,盡管Graphics3D有一個Lighting->選項。

問題:您是否曾嘗試使用陰影生成Mathematica 3D對象? 如果是這樣,你在Mathematica中解決了這個問題? 或者您是否已將圖形導出到其他3D(場景圖)查看器,例如J-Reality?

MMA使用的陰影模型,即所謂的Phong陰影 ,基於局部表面取向,光源方向,相機方向和表面的漫反射和鏡面反射特性之間的簡單關系來確定像素強度。 沒有考慮幾何的其他方面,這意味着對象不會影響其他對象的像素值,即使它們位於對象和光源之間。

這意味着模型不會生成陰影。 它不能。

您可以通過將對象的多邊形投影到地平面或牆平面上來自己模擬陰影(如果適用)。 這不應該太困難,但非平面表面上的陰影會非常困難。

例:

polys = (PolyhedronData["GreatRhombicTriacontahedron", "Faces"] // 
      Normal // N) /. {x_, y_, z_}?VectorQ -> {x, y, z + 6}; 
     (* raise it slightly above ground plane*)

shadow = polys /. {x_, y_, z_}?VectorQ -> {x - z, y, 0};
         (* projection from a directional light source at 45 deg elevation *)

Graphics3D[{polys, EdgeForm[], FaceForm[Darker@Gray], shadow}, 
 Lighting -> {{"Directional", White, {{1, 0, 1}, {0, 0, 0}}}}, 
 Boxed -> False]

在此輸入圖像描述

當然,您需要確保光源(點,點,方向......)和陰影投影是一致的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM