छायांकन मॉडल used by MMA, तथाकथित Phong shading, स्थानीय सतह अभिविन्यास, प्रकाश स्रोत दिशाओं, कैमरा दिशा और सतह के प्रसार और specular गुणों के बीच एक साधारण संबंध के आधार पर पिक्सेल तीव्रता निर्धारित करता है। ज्यामिति का कोई अन्य पहलू ध्यान में नहीं लिया जाता है, जिसका अर्थ यह है कि ऑब्जेक्ट्स अन्य ऑब्जेक्ट्स के पिक्सेल मानों को प्रभावित नहीं करते हैं, भले ही वे ऑब्जेक्ट और प्रकाश स्रोत के बीच हों।
इसका मतलब है कि मॉडल छाया उत्पन्न नहीं करता है। यह करने में सक्षम नहीं है।
आप जमीन के विमान या दीवार विमानों पर लागू होने पर अपने ऑब्जेक्ट के बहुभुज को प्रक्षेपित करके स्वयं को अनुकरण कर सकते हैं। यह बहुत मुश्किल नहीं होना चाहिए, लेकिन गैर-प्लानर सतहों पर छाया बहुत कठिन होगी।
उदाहरण:
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[[email protected]], shadow},
Lighting -> {{"Directional", White, {{1, 0, 1}, {0, 0, 0}}}},
Boxed -> False]
![enter image description here](https://i.stack.imgur.com/ki8z4.png)
बेशक
, तो आप यह सुनिश्चित करें कि प्रकाश स्रोतों (बिंदु, स्थान, दिशात्मक ...) और अपने छाया प्रक्षेपण संगत कर रहे हैं बनाने की जरूरत है।
जहां तक मुझे पता है, सबसे आसान समाधान कुछ बाहरी रेट्रैसर प्रोग्राम का उपयोग कर रहा है, और अपनी ज्यामिति निर्यात कर रहा है। मैंने Kerkythea (सरल चीजों के लिए सीखने/उपयोग करने में आसान, फ्रीवेयर) का उपयोग करके ऐसा किया। – Szabolcs
बहुत अच्छा लगता है। मैं वर्तमान में एक मंच/अभिनेता/निर्देशक वास्तुकला का उपयोग कर विकास कर रहा हूं, जहां वर्तमान में मंच 'ग्राफिक्स 3 डी' है। आपको लगता है कि केवल एक दृश्य के लिए काम करता है। फिर भी कोशिश करने लायक, धन्यवाद। –