เอกสารนี้ให้ภาพรวมของ Helidon และ Mitsuba 3 ซึ่งเป็นสองโครงการที่แตกต่างกันซึ่งมีจุดมุ่งเน้นที่แตกต่างกัน Helidon คือชุดของไลบรารี Java สำหรับการสร้างไมโครเซอร์วิส โดยใช้ประโยชน์จากเธรดเสมือนของ Java 21 เพื่อประสิทธิภาพที่ดีขึ้นและการพัฒนาที่ง่ายขึ้น ในทางกลับกัน Mitsuba 3 คือระบบการเรนเดอร์ที่เน้นการวิจัยซึ่งนำเสนอความสามารถข้ามแพลตฟอร์มที่มีประสิทธิภาพสูงและการบูรณาการ Python ทั้งสองโครงการมีเอกสารประกอบที่ครอบคลุมและพร้อมสำหรับการใช้งานภายใต้ใบอนุญาตโอเพ่นซอร์สที่ได้รับอนุญาต
Helidon: ไลบรารี Java สำหรับไมโครเซอร์วิส
Project Helidon คือชุดของ Java Libraries สำหรับการเขียนไมโครเซอร์วิส
Helidon รองรับโมเดลการเขียนโปรแกรมสองแบบ:
ไม่ว่าในกรณีใดแอปพลิเคชันของคุณคือโปรแกรม Java SE ที่ทำงานบน
ใหม่ Helidon Níma WebServer ที่ถูกเขียนตั้งแต่ต้นจนจบ
ใช้ Java 21 Virtual Threads ด้วย Helidon 4 คุณจะได้รับทรูพุตสูงของเซิร์ฟเวอร์แบบรีแอคทีฟพร้อมความเรียบง่ายของการเขียนโปรแกรมสไตล์เธรดต่อคำขอ
Helidon SE API ใน Helidon 4 มีการเปลี่ยนแปลงอย่างมากจาก Helidon 3 การใช้เธรดเสมือนทำให้ API เหล่านี้เปลี่ยนจากอะซิงโครนัสเป็นการบล็อกได้ ผลลัพธ์ที่ได้คือโค้ดที่ง่ายกว่ามาก ซึ่งเขียน บำรุงรักษา ดีบัก และเข้าใจได้ง่ายกว่ามาก โค้ด Helidon SE เวอร์ชันก่อนหน้าจะต้องมีการแก้ไขจึงจะรันบน API ใหม่เหล่านี้ได้ สำหรับข้อมูลเพิ่มเติม โปรดดูคู่มือการอัพเกรด Helidon SE
Helidon 4 รองรับ MicroProfile 6 ซึ่งหมายความว่าแอปพลิเคชัน Helidon MP 3.x ที่คุณมีอยู่จะทำงานบน Helidon 4 โดยมีการแก้ไขเพียงเล็กน้อยเท่านั้น และเนื่องจากเซิร์ฟเวอร์ MicroProfile ของ Helidon ใช้ Níma WebServer ใหม่ คุณจึงได้รับประโยชน์ทั้งหมดจากการรันบนเธรดเสมือน สำหรับข้อมูลเพิ่มเติม โปรดดูคู่มือการอัพเกรด Helidon MP
ยังใหม่กับเฮลิดอนใช่ไหม? จากนั้นกระโดดเข้ามาและเริ่มต้น
Java 21 จำเป็นต้องใช้ Helidon 4
ใบอนุญาต
Helidon พร้อมใช้งานภายใต้ Apache License 2.0
เอกสารประกอบ
เอกสารและ javadocs ล่าสุดมีอยู่ที่ https://helidon.io/docs/latest
มีเอกสารไวท์เปเปอร์ของ Helidon อยู่ที่นี่
เริ่มต้นเลย
ดูการเริ่มต้นใช้งานที่ https://helidon.io
ดาวน์โหลด / การเข้าถึงไบนารี
ไม่มีการดาวน์โหลด Helidon เพียงใช้ Maven รุ่นต่างๆ ของเรา (GroupID io.helidon)
ดูการเริ่มต้นใช้งานที่ https://helidon.io
เฮลิดอน CLI
macOS:
ลินุกซ์:
หน้าต่าง:
ดูเอกสารนี้สำหรับข้อมูลเพิ่มเติม
สร้าง
คุณต้องมี JDK 21 เพื่อสร้าง Helidon 4
คุณต้องมีมาเวนด้วย เราขอแนะนำ 3.8.0 หรือใหม่กว่า
สร้างเต็ม
เช็คสไตล์
ลิขสิทธิ์
สปอตบัก
เอกสารประกอบ
สร้างสคริปต์
บิลด์สคริปต์อยู่ใน etc/scripts สิ่งเหล่านี้ถูกใช้เป็นหลักในไปป์ไลน์ของเรา
แต่มีสองสามอย่างที่มีประโยชน์ที่จะใช้บนเดสก์ท็อปของคุณเพื่อตรวจสอบการเปลี่ยนแปลงของคุณ
รับความช่วยเหลือ
มีส่วนร่วม
รับทราบข้อมูลอยู่เสมอ
ตัวอย่าง:
มิตสึบะ เรนเดอร์เรอร์ 3
เอกสารประกอบ | วิดีโอสอน | ลินุกซ์ | แมคโอเอส | หน้าต่าง | พีพีไอ |
---|---|---|---|---|---|
คำเตือน
ขณะนี้มีงานที่ไม่มีเอกสารและไม่มั่นคงเกิดขึ้นจำนวนมาก
สาขา master
เราขอแนะนำให้คุณใช้ของเรา
รุ่นล่าสุด
จนกว่าจะมีประกาศต่อไป
หากคุณต้องการลองใช้การเปลี่ยนแปลงที่กำลังจะเกิดขึ้น โปรดดูที่
คู่มือการย้ายนี้
ควรครอบคลุมคุณลักษณะใหม่ส่วนใหญ่และการเปลี่ยนแปลงที่กำลังจะเกิดขึ้น
การแนะนำ
Mitsuba 3 เป็นระบบการเรนเดอร์ที่เน้นการวิจัยสำหรับแสงไปข้างหน้าและไฟผกผัน
การจำลองการขนส่งที่พัฒนาขึ้นที่ EPFL ในประเทศสวิตเซอร์แลนด์
ประกอบด้วยไลบรารีหลักและชุดปลั๊กอินที่ใช้ฟังก์ชันการทำงาน
ตั้งแต่วัสดุและแหล่งกำเนิดแสงไปจนถึงอัลกอริธึมการเรนเดอร์ที่สมบูรณ์
Mitsuba 3 สามารถกำหนดเป้าหมายใหม่ได้ : นี่หมายความว่าการใช้งานพื้นฐานและ
โครงสร้างข้อมูลสามารถแปลงสภาพเพื่อทำงานต่างๆ ให้สำเร็จได้ สำหรับ
ตัวอย่าง รหัสเดียวกันสามารถจำลองการขนส่ง RGB ทั้งแบบสเกลาร์ (คลาสสิกหนึ่งเรย์ต่อครั้ง)
หรือการขนส่งสเปกตรัมที่แตกต่างกันบน GPU ทั้งหมดนี้สร้างขึ้น
Dr.Jit คอมไพเลอร์เฉพาะทาง just-in-time (JIT) ที่พัฒนาขึ้นสำหรับโปรเจ็กต์นี้โดยเฉพาะ
คุณสมบัติหลัก
ข้ามแพลตฟอร์ม : Mitsuba 3 ได้รับการทดสอบบน Linux ( x86_64
), macOS
( aarch64
, x8664
) และ Windows ( x8664
)
ประสิทธิภาพสูง : คอมไพเลอร์ Dr.Jit พื้นฐานจะฟิวส์โค้ดการเรนเดอร์
สู่เมล็ดพืชที่ได้รับประสิทธิภาพอันล้ำสมัยโดยใช้
แบ็กเอนด์ LLVM ที่กำหนดเป้าหมาย CPU และแบ็กเอนด์ CUDA/OptiX
กำหนดเป้าหมาย NVIDIA GPU ด้วยการเร่งด้วยฮาร์ดแวร์ Ray Tracing
Python ก่อน : Mitsuba 3 ได้รับการบูรณาการอย่างลึกซึ้งกับ Python วัสดุ,
พื้นผิวและแม้กระทั่งอัลกอริธึมการเรนเดอร์แบบเต็มสามารถพัฒนาได้ใน Python
ซึ่งระบบ JIT คอมไพล์ (และเลือกสร้างความแตกต่าง) ได้ทันที
สิ่งนี้ทำให้สามารถทดลองที่จำเป็นสำหรับการวิจัยในคอมพิวเตอร์กราฟิกและ
สาขาวิชาอื่น ๆ
ความแตกต่าง : Mitsuba 3 เป็นตัวเรนเดอร์ที่สร้างความแตกต่างได้ ซึ่งหมายความว่ามัน
สามารถคำนวณอนุพันธ์ของการจำลองทั้งหมดโดยคำนึงถึงอินพุต
พารามิเตอร์ต่างๆ เช่น ท่าทางกล้อง เรขาคณิต BSDF พื้นผิว และปริมาตร มัน
ใช้อัลกอริธึมการเรนเดอร์เชิงอนุพันธ์ล่าสุดที่พัฒนาขึ้นที่ EPFL
สเปกตรัมและโพลาไรเซชัน : Mitsuba 3 สามารถใช้เป็นสีเดียวได้
ตัวเรนเดอร์ ตัวเรนเดอร์แบบ RGB หรือตัวเรนเดอร์สเปกตรัม แต่ละรุ่นได้
สามารถเลือกพิจารณาถึงผลกระทบของโพลาไรเซชันได้หากต้องการ
วิดีโอสอน เอกสารประกอบ
เราได้บันทึกวิดีโอ YouTube หลายรายการที่มีการแนะนำอย่างนุ่มนวล
มิตซูบา 3 และ คุณหมอจิตร. นอกเหนือจากนี้ คุณจะพบสมุดบันทึก Juypter ฉบับสมบูรณ์
ครอบคลุมการใช้งาน คำแนะนำวิธีใช้ และเอกสารอ้างอิงที่หลากหลาย
บน readthedocs
การติดตั้ง
เราจัดเตรียมล้อไบนารีที่คอมไพล์ไว้ล่วงหน้าผ่าน PyPI การติดตั้ง Mitsuba ด้วยวิธีนี้ทำได้ง่ายเพียงแค่ใช้งาน
pip ติดตั้งมิตซูบา
บนบรรทัดคำสั่ง แพ็คเกจ Python มีตัวแปรสิบสามแบบตามค่าเริ่มต้น:
scalar_rgb
scalar_spectral
scalarspectralpolarized
llvmadrgb
llvmadmono
llvmadmono_polarized
llvmadspectral
llvmadspectral_polarized
cudaadrgb
cudaadmono
cudaadmono_polarized
cudaadspectral
cudaadspectral_polarized
สองรายการแรกทำการจำลองแบบหนึ่งเรย์ต่อครั้งแบบคลาสสิกโดยใช้ RGB
หรือการแสดงสีสเปกตรัม ในขณะที่สองอันหลังสามารถใช้สำหรับการผกผันได้
แสดงผลบน CPU หรือ GPU หากต้องการเข้าถึงตัวแปรเพิ่มเติม คุณจะต้อง
รวบรวม Dr.Jit เวอร์ชันที่กำหนดเองโดยใช้ CMake โปรดดูที่
เอกสารประกอบ
สำหรับรายละเอียดเกี่ยวกับเรื่องนี้
ความต้องการ
Python >= 3.8
(ทางเลือก) สำหรับการคำนวณบน GPU: Nvidia driver >= 495.89
(ทางเลือก) สำหรับการคำนวณแบบเวกเตอร์ / แบบขนานบน CPU: LLVM >= 11.1
การใช้งาน
นี่คือตัวอย่าง "Hello World" ง่ายๆ ที่แสดงให้เห็นว่าการเรนเดอร์ a เป็นเรื่องง่ายเพียงใด
ฉากโดยใช้ Mitsuba 3 จาก Python:
# นำเข้าไลบรารีโดยใช้นามแฝง "mi" นำเข้า mitsuba เป็น mi# ตั้งค่าตัวแปรของ renderermi.setvariant('scalarrgb')# โหลดฉากฉาก = mi.loติดยาเสพติด(mi.cornellbox())# เรนเดอร์ฉาก img = mi render(scene)# เขียนภาพที่เรนเดอร์ไปยังไฟล์ EXRmi.Bitmap(img).write('cbox.exr')
สามารถดูบทช่วยสอนและสมุดบันทึกตัวอย่างที่ครอบคลุมการใช้งานที่หลากหลาย
ในเอกสารประกอบ
เกี่ยวกับ
โปรเจ็กต์นี้สร้างโดย Wenzel Jakob
คุณสมบัติที่สำคัญและ/หรือการปรับปรุงโค้ดได้รับการสนับสนุนโดย
เซบาสเตียน สไปเรอร์,
นิโคลัส รุสเซล,
เมอร์ลิน นิเมียร์-เดวิด
เดลิโอ วิชินี่,
ทิเซียน เซลท์เนอร์,
แบปติสต์ นิโคเลต์,
มิเกล เครสโป,
วินเซนต์ เลอรอย และ
จือยี่ จาง.
เมื่อใช้ Mitsuba 3 ในโครงการวิชาการ โปรดอ้างอิง:
@software{Mitsuba3,title = {Mitsuba 3 renderer},ผู้เขียน = {Wenzel Jakob และ Sébastien Speierer และ Nicolas Roussel และ Merlin Nimier-David และ Delio Vicini และ Tizian Zeltner และ Baptiste Nicolet และ Miguel Crespo และ Vincent Leroy และ Ziyi Zhang} หมายเหตุ = {https://mitsuba-renderer.org},รุ่น = {3.1.1},ปี = 2022}