เอกสารนี้ให้ข้อมูลที่ครอบคลุมเกี่ยวกับ alf.io ซึ่งเป็นระบบจองตั๋วแบบโอเพ่นซอร์ส และ Mitsuba 3 ซึ่งเป็นระบบเรนเดอร์ที่มุ่งเน้นการวิจัย โดยให้รายละเอียดเกี่ยวกับข้อกำหนดเบื้องต้น คำแนะนำในการติดตั้ง ตัวอย่างการใช้งาน และแนวทางการสนับสนุนสำหรับทั้งสองโปรเจ็กต์ พร้อมด้วยข้อมูลเกี่ยวกับคุณสมบัติและสถานะการพัฒนาที่เกี่ยวข้อง ประเด็นสำคัญที่ครอบคลุม ได้แก่ กระบวนการสร้าง การรวม Docker และการจัดการการพึ่งพา
alf.io
ระบบจองตั๋วโอเพ่นซอร์ส
Alf.io ([ˈalfjo]) เป็นระบบการจัดการการเข้าร่วมกิจกรรมแบบโอเพ่นซอร์สฟรี พัฒนาขึ้นสำหรับผู้จัดงานที่ใส่ใจเกี่ยวกับนโยบายความเป็นส่วนตัว ความปลอดภัย และการกำหนดราคาที่ยุติธรรมสำหรับลูกค้า
ข้อกำหนดเบื้องต้น
คุณควรติดตั้ง Java เวอร์ชัน 17 (เช่น Oracle's, OpenJDK หรือการแจกจ่ายอื่นๆ) เพื่อสร้างและรัน alf.io โปรดทราบว่าสำหรับกระบวนการสร้างนั้นจำเป็นต้องใช้ JDK
PostgreSQL เวอร์ชัน 10 หรือใหม่กว่า
นอกจากนี้ ผู้ใช้ฐานข้อมูลที่สร้างและใช้ตารางไม่ควรเป็น "SUPERUSER" ไม่เช่นนั้นการตรวจสอบนโยบายความปลอดภัยของแถวจะไม่ถูกนำมาใช้
บันทึก
เมื่องานสำหรับ Alf.io v2 เริ่มต้นขึ้น สาขานี้อาจมีโค้ดที่ไม่เสถียรและยังไม่ผ่านการทดสอบ
หากคุณต้องการสร้างและปรับใช้ alf.io ด้วยตัวเอง โปรดเริ่มจากเวอร์ชันที่เผยแพร่
โปรไฟล์สปริง
มีโปรไฟล์สปริงดังนี้
ทำงานในโหมดการพัฒนา
สร้าง Gradle
โครงสร้างนี้มีสำเนาของ wrapper Gradle คุณไม่จำเป็นต้องติดตั้ง Gradle บนระบบของคุณเพื่อสร้าง
โครงการ เพียงดำเนินการ wrapper พร้อมกับงานที่เหมาะสม เป็นต้น
ทำงานด้วยหลายโปรไฟล์
คุณต้องระบุคุณสมบัติโครงการที่บรรทัดคำสั่ง เช่น
งาน "bootRun" ในเครื่องมีข้อกำหนดเบื้องต้นดังต่อไปนี้:
เมื่อเริ่มต้นแล้ว alf.io จะสร้างตารางที่จำเป็นทั้งหมดในฐานข้อมูล และพร้อมใช้งานที่ http://localhost:8080/admin คุณสามารถเข้าสู่ระบบโดยใช้ชื่อผู้ใช้เริ่มต้น ผู้ดูแลระบบ และรหัสผ่านที่พิมพ์บนคอนโซล
คุณสามารถรับรายการงาน Gradle ที่รองรับทั้งหมดได้โดยการรัน
คุณสามารถกำหนดค่าคุณสมบัติระบบเพิ่มเติมได้ (หากต้องการ) โดยสร้างไฟล์ต่อไปนี้และวางคุณสมบัติหนึ่งรายการต่อบรรทัด:
โปรดทราบว่าเนื่องจากไฟล์นี้อาจมีข้อมูลที่ละเอียดอ่อน (เช่น คีย์ API ส่วนตัวของ Google Maps) จึงจะถูกละเว้นโดย git โดยอัตโนมัติ
สำหรับการดีบัก
เพิ่มบรรทัดใหม่ด้วย: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 ใน custom.jvmargs
การมีส่วนร่วมใน alf.io
การนำเข้าโครงการ Gradle ไปยัง Intellij และ Eclipse ใช้งานได้ทั้งคู่
หมายเหตุ:
เนื่องจาก TestContainers คาดหวังให้ซ็อกเก็ตนักเทียบท่าสำหรับจัดการคอนเทนเนอร์ คุณจะต้องทำสิ่งต่อไปนี้ (ดูรายละเอียดปัญหาเดิม):
กำหนดสภาพแวดล้อมที่ 2 ตัวแปร:
และทำงานในคอนโซลอื่น:
ที่ควรทราบ:
ตรวจสอบการพึ่งพาเพื่ออัปเดต
./gradlew dependencyUpdates
ใช้งานคอนเทนเนอร์ Docker
มีรูปภาพคอนเทนเนอร์อยู่ที่ https://hub.docker.com/r/alfio/alf.io/tags
alf.io ยังสามารถรันด้วย Docker Compose (โหมดการพัฒนา):
ไม่รองรับการรัน alf.io ในการใช้งานจริงโดยใช้ Docker compose อย่างเป็นทางการ
อย่างไรก็ตาม หากคุณตัดสินใจที่จะทำเช่นนั้น คุณจะต้องทำการเปลี่ยนแปลงสองสามอย่าง:
ทดสอบแอปพลิเคชัน alf.io
สร้างเวอร์ชันใหม่ของอิมเมจนักเทียบท่า alfio/alf.io
สร้างแอปพลิเคชันและ Dockerfile
หรือคุณสามารถใช้ Docker (ทดลอง):
โปรดทราบว่าในขณะนี้ คำสั่งด้านบนดำเนินการสร้างโดยไม่ต้องรันการทดสอบอัตโนมัติ
ใช้มันเป็นความเสี่ยงของคุณเอง
สร้างภาพนักเทียบท่า:
เกี่ยวกับ AppleWWDRCAG4.cer ที่รวมมาด้วย
ใบรับรองที่ src/main/resources/alfio/certificates/AppleWWDRCAG4.cer ได้รับการนำเข้าสำหรับฟังก์ชัน https://github.com/ryantenney/passkit4j#usage
โดยจะหมดอายุในวันที่ 12-10-2030 (ปปปป-ดด-วว - ณ https://www.apple.com/certificateauthority/)
ผู้ร่วมให้ข้อมูล
ผู้ร่วมเขียนโค้ด
โครงการนี้เกิดขึ้นได้ต้องขอบคุณทุกคนที่มีส่วนร่วม
ผู้ร่วมแปล (POEditor)
ขอขอบคุณนักแปลของเราที่ช่วยเราใน POEditor เป็นอย่างยิ่ง:
(เราแสดงชื่อเต็ม/โปรไฟล์เฉพาะในกรณีที่เราได้รับความยินยอมอย่างชัดแจ้งให้ดำเนินการดังกล่าว)
การแปลเสร็จสมบูรณ์แต่ยังไม่ได้บูรณาการ (WIP)
สปอนเซอร์
โครงการนี้ได้รับการสนับสนุนโดย:
ผู้มีส่วนร่วมทางการเงิน
ร่วมเป็นผู้บริจาคทางการเงินและช่วยเรารักษาชุมชนของเรา [มีส่วนช่วย]
บุคคล
องค์กร
สนับสนุนโครงการนี้กับองค์กรของคุณ โลโก้ของคุณจะแสดงที่นี่พร้อมลิงก์ไปยังเว็บไซต์ของคุณ [มีส่วนช่วย]
มิตสึบะ เรนเดอร์เรอร์ 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}