มีวิธีเพิ่มคำอธิบายสีในการวิเคราะห์ตาข่ายหรือไม่?

Aug 17 2020

ฉันกำลังทำการวิจัยทางการแพทย์ซึ่งจำเป็นต้องวิเคราะห์ความหนาของผนังของวัตถุนี้ ฉันใช้การวิเคราะห์ตาข่ายซึ่งทำให้ตาข่ายเป็นสีโดยอัตโนมัติ ขออภัยฉันไม่สามารถหาวิธีเพิ่มคำอธิบายสีเพื่อระบุความหนาของสีของผนังได้ ฉันกำลังมองหาสิ่งที่ต้องการ:

https://www.researchgate.net/figure/Three-dimensional-3D-atrial-wall-thickness-variation-across-the-whole-human-atria-Top_fig2_319241926

มีวิธีแก้ปัญหานี้หรือไม่?

ฉันดูอะไรแบบนี้

objekt ยังคงเป็นสีน้ำเงินเมื่อใช้การตั้งค่านี้

เนื่องจากฉันค่อนข้างใหม่กับ Blender มันไม่ใช่เรื่องง่ายสำหรับฉันที่จะหาตัวแก้ไขการแรเงาและการใช้สคริปต์ แต่ฉันก็ใช้งานได้ช้าลง เมื่อฉันพยายามสร้างการตั้งค่าใหม่ในตัวแก้ไขการแรเงาฉันไม่สามารถเชื่อมต่อสคริปต์กับกลุ่ม ,, MaptThickness "ได้ฉันคัดลอกข้อความ NormalDepth จาก test_Thickness ของคุณจาก volume projekt @vklidu และบันทึกเป็น (.py) เพื่อติดตั้ง มันเป็นส่วนเสริม แต่ไม่ได้ผลเมื่อฉันบันทึกเป็น (.osl) Blender ไม่แสดงให้ฉันเห็นฉันเดาว่ามันค่อนข้างง่าย แต่ฉันจะใช้สคริปต์ได้อย่างไร?

คำตอบ

6 vklidu Aug 17 2020 at 11:41

สิ่งที่เกี่ยวกับAmbient Oclussion node ที่เปิดใช้งานคุณสมบัติInside ?
ฉันไม่แน่ใจว่าผลลัพธ์จะแม่นยำแค่ไหน แต่ดูเหมือนว่าจะทำงานได้ดีกว่าMesh Analysisมาก

(แถบในหน้าจอเป็นเพียงการไล่ระดับสี 2 มิติ)

เปรียบเทียบกับ Mesh Analysis, shader นี้:

  • สามารถแสดงผลได้ (ด้วยเครื่องยนต์ Cycles)
  • สีถูกกำหนดให้กับจุดยอด (ไม่ใช่ใบหน้า)

เคล็ดลับ:

  • หากต้องการแชร์โหนดColorRampเดียวกันในวัสดุทั้งสองให้ปิดโหนดนี้ในNode Groupในวัสดุเดียวและเพิ่มNode Groupนี้เป็นวัสดุที่สอง
  • การจัดการสีเปลี่ยนจากFilmicเป็นStandard

หมายเหตุ: Eevee ที่เปิดใช้งาน AO จะสร้างสี แต่ไม่มีคุณสมบัติ "Inside" ที่เราใช้สำหรับความหนา


ความถูกต้อง

Q ที่น่าสนใจมากเนื่องจากความหนาขึ้นอยู่กับทิศทางของความมั่นใจ เช่นเดียวกับแผ่นแก้วที่เราใช้พูดและวัดความหนาในทิศทางความลึกนั่นคือบาง แต่คุณยังสามารถตรวจสอบความหนาในทิศทางความกว้างซึ่งจะหนามากในกรณีนี้

นั่นคือสิ่งที่วัดการวิเคราะห์ตาข่าย หากคุณตรวจสอบ @RobinBetts ผสมผสานกับเฉดสี OSL ภายในเป็นวัสดุชนิดหนึ่งที่เรียกว่าNormalDepthและนั่นก็เหมือนกับการวิเคราะห์ตาข่ายโดยจะยิงรังสีเดี่ยวในทิศทางปกติไปยังใบหน้าอื่น ระยะนี้แสดงด้วยสีที่สอดคล้องกันที่กำหนดให้กับใบหน้า ดังนั้นถ้าคุณเปิดกลุ่มโหนดและตรวจสอบแผนที่ช่วงโหนด - The กำหนดค่าสองคนแรกเริ่ม / ท้ายของสีลาด

ตัวอย่าง - จาก Min = 0หมายถึงสีแดงเริ่มต้นที่ระยะทางเป็นศูนย์และFrom Max = 1หมายถึงสีน้ำเงินสิ้นสุดที่ระยะ 1 ม. การเล่นกับค่าทั้งสองนี้คุณสามารถระบุระยะทางที่ ColorRamp แสดงได้ ดังนั้นวัสดุนี้น่าจะดีที่สุดสำหรับคุณ

แต่เช่นเดียวกับการวิเคราะห์ตาข่ายมันสร้างใบหน้าสี "แปลก ๆ " ที่ถูกต้องทางคณิตศาสตร์ เช่นเดียวกับเมื่อคุณตรวจสอบส่วนล่างของกรามของ Monkey จะมีสีน้ำเงินเข้มแม้ว่าส่วนนั้นของตาข่ายจะไม่หนานัก แต่รังสีที่ยิงจากใบหน้าไปจนถึงคิ้วทำให้ระยะห่างตรงกับสีน้ำเงินเข้มสำหรับใบหน้านั้น

มีวิธีอื่นในการคำนวณความหนาโดยที่ไม่ได้ใช้ทิศทางรังสีเดียว เช่นเดียวกับ AO ที่ยิงหลายทิศทางในซีกโลก สีสุดท้ายแสดงถึงระยะทางเฉลี่ยเหล่านี้

การเปรียบเทียบ - Normal Depth (OSL) / Ambient Occlusion / Lambert Depth (OSL)

Bar object มีความสูง 1 ม. และความลึก 1 ม. มีรูปร่างเป็นวัตถุลิ่ม แถบทางด้านซ้ายใช้ Normal Depth shader และใช้งานได้เพราะวัดระยะทางจากทิศทางเดียวเท่านั้น ลูกบาศก์มีสีเขียวบริสุทธิ์ 0.5 ม. สำหรับระยะทางตรงกลางแท่ง แต่อย่างที่คุณเห็นอีกสอง shadery ทำให้คุณรู้ว่ามุมของ Cube นั้นบางกว่าในการสังเกต 3 มิติมากกว่า Middle Mass ของลูกบาศก์

NormalDepth shader ดูเหมือนจะแม่นยำ ... ด้วยค่าAmbient OcclusionและLambert ที่ฉันต้องเล่นเพื่อให้ได้สีที่ใกล้เคียงกัน และฉันไม่รู้วิธีควบคุม

3 RobinBetts Aug 17 2020 at 21:16

นี่เป็นเพียงส่วนเสริมของคำตอบของ @ vklidu .. AO ดูเหมือนจะไปถูกทางแล้ว อาจมีมาตรการ 'ความหนา' อื่น ๆ ที่ต้องพิจารณาทั้งนี้ขึ้นอยู่กับการใช้งานของคุณ ..

ฉันกำลังจะไปเขียน Shader OSL อย่างรวดเร็ว, การใช้ความยาวของเรย์จากปกติ แต่ดินแดนทั้งหมดได้รับการคุ้มครองมากกว้างโดย @ Robert บาลีที่นี่ ดังนั้นโปรดอย่าให้เครดิตสำหรับคำตอบนี้สคริปต์เป็นของเขา

การใช้ความหนา Lambertian ของ @ Pali (เอนเอียงไปตามปกติ แต่สุ่มตัวอย่างรอบ ๆ ) สำหรับแบบจำลองและความหนาปกติที่เรียบง่ายของเขาสำหรับลิ่มสีตั้งแต่ 0-1 จะให้สิ่งนี้:

ดังที่ @vklidu กล่าวไว้คุณสามารถมั่นใจได้ว่าการแมปจะยังคงซิงค์กันอยู่ ระหว่างวัสดุโดยใส่การทำแผนที่ช่วงลงในกลุ่มและแก้ไขกลุ่มในที่เดียวสำหรับวัสดุทั้งหมด:

ความแตกต่างเพียงอย่างเดียวระหว่างเชเดอร์ของ @ Pali และ AO คือ AO ส่งรังสีสุ่มตัวอย่าง ' ตัวอย่าง ' ออกมาในซีกโลกรอบ ๆ จุดแรเงาตามปกติและเขาส่งเพียงอันเดียวโดยมีอคติในแบบที่เขาอธิบายในคำตอบของเขา