ยินดีต้อนรับสู่ Open Shading Language!
Open Shading Language (OSL) เป็นภาษาเล็กๆ แต่สมบูรณ์สำหรับการแรเงาที่ตั้งโปรแกรมได้ในตัวเรนเดอร์ขั้นสูงและแอปพลิเคชันอื่นๆ เหมาะอย่างยิ่งสำหรับการอธิบายวัสดุ แสง การกระจัด และการสร้างรูปแบบ
OSL เดิมได้รับการพัฒนาโดย Sony Pictures Imageworks เพื่อใช้ในการเรนเดอร์ภายในของบริษัทที่ใช้สำหรับแอนิเมชันภาพยนตร์สารคดีและเอฟเฟกต์ภาพ ซึ่งเผยแพร่เป็นโอเพ่นซอร์สเพื่อให้สตูดิโอเอฟเฟกต์ภาพและแอนิเมชั่นอื่น ๆ และผู้จำหน่ายซอฟต์แวร์เรนเดอร์สามารถใช้งานได้ ตอนนี้เป็นภาษาแรเงามาตรฐานสำหรับ VFX และฟีเจอร์ภาพเคลื่อนไหว ซึ่งใช้ในอุตสาหกรรมในการเรนเดอร์เชิงพาณิชย์และสตูดิโอจำนวนมาก ด้วยเหตุนี้ งานใน OSL จึงได้รับรางวัล Academy Award สำหรับความสำเร็จทางเทคนิคในปี 2017
OSL มีความแข็งแกร่งและได้รับการพิสูจน์แล้ว และถูกนำมาใช้ในภาพยนตร์หลายเรื่อง เช่น "The Amazing Spider-Man", "Hotel Transylvania", "Edge of Tomorrow", "Ant Man", "Finding Dory" และอื่นๆ อีกมากมาย การรองรับ OSL มีอยู่ในตัวเรนเดอร์ชั้นนำส่วนใหญ่ที่ใช้สำหรับงาน VFX และแอนิเมชั่นระดับไฮเอนด์ สำหรับรายชื่อภาพยนตร์และผลิตภัณฑ์ทั้งหมด โปรดดูที่ผลงานภาพยนตร์
รหัส OSL ได้รับการเผยแพร่ภายใต้ใบอนุญาต "New/3-clause BSD" และเอกสารประกอบภายใต้ Creative Commons Attribution 4.0 International License กล่าวโดยสรุป คุณมีอิสระในการใช้ OSL ในแอปพลิเคชันของคุณเอง ไม่ว่าจะเป็นแอปพลิเคชันฟรีหรือเชิงพาณิชย์ เปิดหรือมีกรรมสิทธิ์ ตลอดจนแก้ไขโค้ด OSL และเอกสารประกอบตามที่คุณต้องการ โดยมีเงื่อนไขว่าคุณต้องเก็บประกาศลิขสิทธิ์ต้นฉบับตามที่อธิบายไว้ใน ใบอนุญาต
OSL มีไวยากรณ์คล้ายกับ C เช่นเดียวกับภาษาแรเงาอื่นๆ อย่างไรก็ตาม ได้รับการออกแบบมาเพื่ออัลกอริธึมการเรนเดอร์ขั้นสูงโดยเฉพาะ และมีคุณสมบัติต่างๆ เช่น Radiance closures, BSDF และ Deferred Ray Tracing ถือเป็นแนวคิดชั้นหนึ่ง
OSL มีลักษณะเฉพาะหลายประการที่ไม่พบในภาษาแรเงาอื่นๆ (ไม่ใช่ทั้งหมดรวมกันอย่างแน่นอน) นี่คือบางสิ่งที่คุณจะพบว่ามีความแตกต่างใน OSL เมื่อเทียบกับภาษาอื่นๆ:
เฉดสีพื้นผิวและปริมาตรจะคำนวณการปิดผิวที่เปล่งประกาย ไม่ใช่สีสุดท้าย
เฉดสีพื้นผิวและปริมาตรของ OSL คำนวณคำอธิบายเชิงสัญลักษณ์ที่ชัดเจน เรียกว่า "การปิด" ของวิธีที่พื้นผิวหรือปริมาตรกระเจิงแสง ในหน่วยความส่องสว่าง การปิดความกระจ่างใสเหล่านี้อาจถูกประเมินในทิศทางเฉพาะ สุ่มตัวอย่างเพื่อค้นหาทิศทางที่สำคัญ หรือบันทึกไว้สำหรับการประเมินและการประเมินใหม่ในภายหลัง วิธีการใหม่นี้เหมาะอย่างยิ่งสำหรับการเรนเดอร์ทางกายภาพที่รองรับ Ray Tracing และการส่องสว่างทั่วโลก
ในทางตรงกันข้าม ภาษาแรเงาอื่นๆ มักจะคำนวณเพียงสีพื้นผิวที่มองเห็นได้จากทิศทางใดทิศทางหนึ่ง เชเดอร์แบบเก่าเหล่านี้คือ "กล่องดำ" ที่ตัวเรนเดอร์สามารถทำได้เพียงเล็กน้อย แต่ดำเนินการเพื่อค้นหาข้อมูลชิ้นเดียวนี้ (เช่น ไม่มีวิธีที่มีประสิทธิภาพในการค้นหาจากสิ่งเหล่านั้นว่าทิศทางใดที่สำคัญในการสุ่มตัวอย่าง) นอกจากนี้ หน่วยทางกายภาพของแสงและพื้นผิวมักไม่ได้ระบุเอาไว้ ทำให้เป็นเรื่องยากมากที่จะตรวจสอบให้แน่ใจว่าเชเดอร์มีพฤติกรรมที่ถูกต้องทางกายภาพ
ตัวเชเดอร์พื้นผิวและปริมาตรจะไม่วนทับแสงหรือรังสี
ไม่มี "ลูปแสง" หรือรังสีส่องสว่างที่ลากเส้นอย่างชัดเจนในเชเดอร์พื้นผิว OSL แต่ตัวแบ่งเงาพื้นผิวจะคำนวณการปิดรัศมีเพื่ออธิบายว่าพื้นผิวกระจายแสงอย่างไร และส่วนหนึ่งของตัวเรนเดอร์ที่เรียกว่า "ตัวรวม" จะประเมินการปิดสำหรับชุดแหล่งกำเนิดแสงเฉพาะ และกำหนดทิศทางที่รังสีควรถูกติดตาม เอฟเฟกต์ที่โดยปกติแล้วต้องใช้การติดตามรังสีอย่างชัดเจน เช่น การสะท้อนและการหักเหของแสง เป็นเพียงส่วนหนึ่งของการปิดความกระจ่างใสและดูเหมือนกับ BSDF อื่นๆ
ข้อดีของแนวทางนี้ ได้แก่ การรวมและการสุ่มตัวอย่างอาจจัดเป็นชุดหรือจัดลำดับใหม่เพื่อเพิ่มการเชื่อมโยงกันของรังสี สามารถจัดสรร "งบประมาณรังสี" เพื่อสุ่มตัวอย่าง BSDF ได้อย่างเหมาะสม การปิดอาจใช้สำหรับการติดตามรังสีแบบสองทิศทางหรือการขนส่งแสงของ Metropolis และการปิดอาจได้รับการประเมินใหม่อย่างรวดเร็วด้วยแสงใหม่โดยไม่ต้องเปิดเชเดอร์อีกครั้ง
พื้นผิวและเฉดสีแสงเป็นสิ่งเดียวกัน
OSL ไม่มีเชเดอร์ประเภทแยกต่างหากสำหรับแหล่งกำเนิดแสง แสงเป็นเพียงพื้นผิวที่เปล่งแสงได้ และไฟทั้งหมดเป็นไฟบริเวณพื้นที่
ความโปร่งใสเป็นเพียงแสงสว่างอีกประเภทหนึ่ง
คุณไม่จำเป็นต้องตั้งค่าตัวแปรความโปร่งใส/ความทึบอย่างชัดเจนในเชดเดอร์ ความโปร่งใสเป็นอีกวิธีหนึ่งที่แสงจะโต้ตอบกับพื้นผิว และรวมอยู่ในการปิดความกระจ่างใสหลักที่คำนวณโดยตัวเชเดอร์พื้นผิว
เอาต์พุตการเรนเดอร์ (AOV) อาจระบุได้โดยใช้ "นิพจน์เส้นทางแสง"
บางครั้ง แนะนำให้ส่งออกภาพที่มีส่วนประกอบของแสงแต่ละส่วน เช่น สเปกกูลาร์ กระจาย การสะท้อน แสงแต่ละดวง ฯลฯ ในภาษาอื่น โดยปกติแล้วจะทำได้โดยการเพิ่ม "ตัวแปรเอาต์พุต" มากมายให้กับเชเดอร์ที่รวบรวมปริมาณแต่ละส่วนเหล่านี้
OSL shader ไม่จำเป็นต้องยุ่งกับโค้ดหรือตัวแปรเอาท์พุตใดๆ เพื่อให้บรรลุเป้าหมายนี้ แต่มีสัญกรณ์ที่ใช้นิพจน์ทั่วไปแทนเพื่ออธิบายว่าเส้นทางแสงใดควรสนับสนุนผลลัพธ์ใด ทั้งหมดนี้ทำในฝั่งตัวเรนเดอร์ (แม้ว่าจะรองรับโดยการนำ OSL ไปใช้ก็ตาม) หากคุณต้องการเอาต์พุตใหม่ ไม่จำเป็นต้องแก้ไขเชเดอร์เลย คุณเพียงแค่ต้องบอกผู้เรนเดอร์ถึงการแสดงออกของเส้นทางแสงใหม่
Shaders ถูกจัดเป็นเครือข่าย
OSL เชเดอร์ไม่ใช่แบบเสาหิน แต่สามารถจัดเป็นเครือข่ายของเชเดอร์ได้ (บางครั้งเรียกว่ากลุ่มเชเดอร์ กราฟ หรือ DAG) โดยเอาต์พุตที่มีชื่อของบางโหนดจะเชื่อมต่อกับอินพุตที่ระบุชื่อของโหนดอื่นภายในเครือข่าย การเชื่อมต่อเหล่านี้อาจทำได้แบบไดนามิก ณ เวลาเรนเดอร์ และไม่ส่งผลกระทบต่อการรวบรวมโหนดเชเดอร์แต่ละโหนด นอกจากนี้ แต่ละโหนดจะได้รับการประเมินอย่างเกียจคร้าน เฉพาะเมื่อเอาต์พุตของพวกเขาถูก "ดึง" จากโหนดต่อมาที่ขึ้นอยู่กับโหนดเหล่านั้น (ผู้เขียนเชเดอร์อาจยังคงไม่รู้รายละเอียดเหล่านี้อย่างมีความสุข และเขียนเชเดอร์ราวกับว่าทุกอย่างได้รับการประเมินตามปกติ)
อนุพันธ์โดยพลการโดยไม่มีกริดหรือจุดแรเงาเพิ่มเติม
ใน OSL คุณสามารถหาอนุพันธ์ของปริมาณที่คำนวณใดๆ ในเชดเดอร์ และใช้ปริมาณที่กำหนดเองเป็นพิกัดพื้นผิวและคาดหวังการกรองที่ถูกต้อง ซึ่งไม่จำเป็นต้องมีการจัดเรียงจุดแรเงาในตารางสี่เหลี่ยม หรือมีการเชื่อมต่อใดๆ เป็นพิเศษ หรือต้องแรเงา "จุดพิเศษ" ใดๆ เนื่องจากอนุพันธ์ไม่ได้คำนวณจากผลต่างอันจำกัดกับจุดใกล้เคียง แต่คำนวณโดย "การสร้างความแตกต่างโดยอัตโนมัติ" ซึ่งเป็นการคำนวณส่วนต่างบางส่วนสำหรับตัวแปรที่นำไปสู่อนุพันธ์ โดยไม่ต้องมีการแทรกแซงใด ๆ ตามที่กำหนดโดยผู้เขียนเชเดอร์
OSL ปรับให้เหมาะสมอย่างมากในเวลาเรนเดอร์
OSL ใช้เฟรมเวิร์กคอมไพเลอร์ LLVM เพื่อแปลเครือข่ายเชเดอร์เป็นโค้ดเครื่องได้ทันที (ทันเวลาพอดีหรือ "JIT") และในกระบวนการนี้จะปรับเชเดอร์และเครือข่ายให้เหมาะสมอย่างมากโดยมีความรู้อย่างเต็มที่เกี่ยวกับพารามิเตอร์เชเดอร์และค่ารันไทม์อื่น ๆ ที่ไม่สามารถทำได้ เป็นที่ทราบกันดีอยู่แล้วเมื่อมีการรวบรวมเชเดอร์จากซอร์สโค้ด ด้วยเหตุนี้ เราจึงเห็นว่าเครือข่ายการแรเงา OSL ของเราดำเนินการได้เร็วกว่าเชเดอร์ที่เทียบเท่าซึ่งสร้างขึ้นด้วยมือใน C ถึง 25%! (นั่นเป็นวิธีที่เชเดอร์เก่าของเราทำงานในเรนเดอร์ของเรา)
การกระจายโอเพ่นซอร์ส OSL ประกอบด้วยองค์ประกอบต่อไปนี้:
oslc ซึ่งเป็นคอมไพเลอร์แบบสแตนด์อโลนที่แปลซอร์สโค้ด OSL เป็นโค้ดระดับกลางที่เหมือนแอสเซมบลี (ในรูปแบบของไฟล์ .oso)
liboslc ซึ่งเป็นไลบรารีที่ใช้คลาส OSLCompiler ซึ่งมีความกล้าของคอมไพเลอร์เชเดอร์ ในกรณีที่ใครก็ตามจำเป็นต้องฝังมันลงในแอปพลิเคชันอื่น และไม่ต้องการให้คอมไพเลอร์สามารถเรียกใช้งานได้แยกต่างหาก
liboslquery ไลบรารีที่ใช้คลาส OSLQuery ซึ่งช่วยให้แอปพลิเคชันสามารถสืบค้นข้อมูลเกี่ยวกับเชเดอร์ที่คอมไพล์แล้ว รวมถึงรายการพารามิเตอร์ทั้งหมด ประเภท และข้อมูลเมตาใด ๆ ที่เกี่ยวข้องกับเชเดอร์เหล่านั้น
oslinfo ซึ่งเป็นโปรแกรมบรรทัดคำสั่งที่ใช้ liboslquery เพื่อพิมพ์ข้อมูลที่เกี่ยวข้องทั้งหมดเกี่ยวกับเชเดอร์และพารามิเตอร์ไปยังคอนโซล
liboslexic ซึ่งเป็นไลบรารีที่ใช้คลาส ShadingSystem ซึ่งอนุญาตให้เรียกใช้เชเดอร์ที่คอมไพล์แล้วภายในแอปพลิเคชัน ปัจจุบันใช้ LLVM เพื่อ JIT รวบรวมรหัสไบต์เชเดอร์เป็นคำสั่ง x86
testshade เป็นโปรแกรมที่ให้คุณรันเชเดอร์ (หรือเครือข่ายเชเดอร์ที่เชื่อมต่อ) บนอาเรย์สี่เหลี่ยมของจุด และบันทึกเอาต์พุตใดๆ ของมันเป็นรูปภาพ ซึ่งช่วยให้สามารถตรวจสอบเชเดอร์ (และระบบแรเงา) ได้โดยไม่จำเป็นต้องผสานรวมเข้ากับตัวเรนเดอร์ที่ทำงานได้อย่างสมบูรณ์ และเป็นพื้นฐานสำหรับการตรวจสอบชุดทดสอบส่วนใหญ่ของเรา นอกจาก testrender แล้ว testshade ยังเป็นตัวอย่างที่ดีของการเรียกไลบรารี OSL
testrender ซึ่งเป็นตัวเรนเดอร์การติดตามรังสีขนาดเล็กที่ใช้ OSL สำหรับการแรเงา คุณสมบัติมีน้อยมาก (ขณะนี้อนุญาตให้ใช้เฉพาะทรงกลมเท่านั้น) และไม่มีการให้ความสำคัญกับประสิทธิภาพ แต่มันแสดงให้เห็นว่าไลบรารี OSL สามารถรวมเข้ากับตัวเรนเดอร์ที่ใช้งานได้ได้อย่างไร อินเทอร์เฟซใดที่ตัวเรนเดอร์จำเป็นต้องจัดหา และวิธีที่ BSDFs/ การปิดความกระจ่างใสควรได้รับการประเมินและบูรณาการ (รวมถึงการสุ่มตัวอย่างที่มีนัยสำคัญหลายรายการ)
ตัวอย่างเชเดอร์บางส่วน
เอกสารประกอบ -- ณ จุดนี้ประกอบด้วยข้อกำหนดภาษา OSL (มีประโยชน์สำหรับผู้เขียนเชเดอร์) แต่ในอนาคตจะมีเอกสารประกอบโดยละเอียดเกี่ยวกับวิธีการรวมไลบรารี OSL เข้ากับตัวเรนเดอร์
รายการนี้ประกอบด้วยภาพยนตร์หรือผลิตภัณฑ์ที่มีการระบุการใช้ OSL หรือสามารถอนุมานได้จากแหล่งข้อมูลสาธารณะ หรือที่เราทราบมาว่าสามารถแสดงรายการได้ที่นี่ หากโปรเจ็กต์ที่ใช้ OSL หายไปและไม่ได้เป็นความลับ เพียงส่งอีเมลถึงหัวหน้าโปรเจ็กต์ OSL หรือส่ง PR พร้อมการแก้ไขไฟล์นี้
(ตามลำดับโดยประมาณของการเพิ่มการรองรับ OSL)
(ในที่นี้เรากำลังพิจารณา "ผลงานที่สำคัญ" ซึ่งหมายถึงภาพยนตร์ที่ออกฉายในโรงภาพยนตร์หรือบนแพลตฟอร์มสตรีมมิ่งหลัก ซีรีส์ทีวี/สตรีมมิ่งที่มีวิชวลเอฟเฟกต์หรือแอนิเมชั่นเป็นจำนวนมาก หรือภาพยนตร์สั้นที่ชนะหรือได้รับการเสนอชื่อเข้าชิงรางวัลใหญ่ๆ)
โปรดอ่านไฟล์ INSTALL.md สำหรับคำแนะนำโดยละเอียดเกี่ยวกับวิธีการสร้างและติดตั้ง OSL
ข้อมูลจำเพาะของภาษา OSL สามารถพบได้ที่ src/doc/osl-languagespec.pdf (ในการแจกแจงแหล่งที่มา) หรือในไฟล์ share/doc/OSL/osl-languagespec.pdf ของการแจกแจงไบนารีที่ติดตั้งไว้
เอกสาร OSL แบบทดลองบน ReadTheDocs นี่จะเป็นเอกสารประกอบในอนาคต มันอาจจะสมบูรณ์พอๆ กับ PDF แต่ต้องมีการพิสูจน์อักษร ดังนั้น PDF จึงยังถือว่าเป็นแหล่งข้อมูลที่เชื่อถือได้ในขณะนี้ แต่ในเร็วๆ นี้ ข้อกำหนด PDF แบบเก่าจะเลิกใช้แล้วเพื่อใช้เอกสารออนไลน์นี้แทน
นอกจากนี้ยังมีเวอร์ชัน PDF
สำหรับผู้ที่สนใจเรียนรู้การเขียนโปรแกรมเชเดอร์ใน OSL มีหลักสูตร OSL Shaders สำหรับ RenderMan ของ Siggraph 2022 Educator ซึ่งใช้ RenderMan ในตัวอย่างและเอกสารเสริม แต่เน้นไปที่การเขียนเชเดอร์ใน OSL เป็นหลัก
คำถามง่ายๆ "ฉันจะทำอย่างไร...", "ฉันมีปัญหา" หรือ "นี่เป็นข้อบกพร่อง" เหมาะที่สุดในรายชื่ออีเมลของนักพัฒนา osl-dev นั่นคือสิ่งที่คนส่วนใหญ่จะเห็นและอาจตอบคำถามของคุณได้อย่างรวดเร็ว (มากกว่า "ปัญหา" ของ GH)
จุดบกพร่อง การสร้างปัญหา และช่องโหว่ที่ค้นพบซึ่งคุณค่อนข้างแน่ใจว่าเป็นปัญหาที่ถูกต้องในโค้ด และคุณสามารถให้คำแนะนำที่ชัดเจนเกี่ยวกับวิธีการทำซ้ำได้ ควรรายงานว่าเป็นปัญหา
หากคุณคิดว่าคุณพบช่องโหว่ที่อาจเกิดขึ้นใน OSL โปรดรายงานช่องโหว่ดังกล่าวอย่างเป็นความลับโดยส่งอีเมลถึงผู้ดูแลโครงการที่ security@openshading language.org
หากปัญหาอื่นใดที่ต้องการการรักษาความลับซึ่งทำให้ไม่สามารถถามคำถามหรือประเด็นสาธารณะได้ คุณสามารถติดต่อผู้ดูแลโครงการเป็นการส่วนตัวได้ที่ [email protected]
OSL ยินดีกับการมีส่วนร่วมในโค้ด และมีคนเกือบ 50 คนได้ทำเช่นนั้นตลอดหลายปีที่ผ่านมา เรารับการสนับสนุนโค้ดผ่านกลไกการขอดึง (PR) ของ GitHub ตามปกติ โปรดดูการมีส่วนร่วมสำหรับคำแนะนำโดยละเอียด
หน้า OSL GitHub
อ่านหรือสมัครรับรายชื่อเมลการพัฒนา OSL
PDF ล่าสุดของข้อกำหนดภาษา OSL
หน้าแรกของ OSL
ความเป็นผู้นำโครงการปัจจุบันได้รับการบันทึกไว้ในไฟล์การกำกับดูแล
หลายๆ คนได้มีส่วนร่วมในฟีเจอร์ การแก้ไขข้อบกพร่อง และการเปลี่ยนแปลงอื่นๆ ใน OSL ในช่วงหลายปีที่ผ่านมา: Steve Agland, Shane Ambler, Martijn Berger, Farchad Bidgolirad, Nicholas Bishop, Curtis Black, Rasmus Bonnedal, Solomon Boulos, Stefan Bruens, Stefan Büttner, Matthaus G ชาจ์ดาส, คลาร์ก เฉิน, เมห์ดี้ ชินูเน, อเลฮานโดร คอนตี, เดเมียน กูร์กตัวส์, ดีเตอร์ เดอ เบตส์, โธมัส ดิงเจส, แดเนียล เดรสเซอร์, แมดส์ ดรือชเลอร์, ปีเตอร์ เอลเลอร์ริงตัน, ลุค เอ็มโรส, หลุยส์ เฟิง, มาร์ค ไฟนอล, อองรี ฟูสส์, สตีเฟน ฟรีดแมน, โชโย ฟูจิตะ, ทิม แกรนท์, แลร์รี่ กริทซ์, นิโคลัส ไกรด์, ยวน ฮาห์ร, เดเร็ค ฮาส, สเวน-เฮนดริก ฮาส, จอห์น แฮดดอน, นิคลาส แฮร์รีสัน, แดเนียล เฮคเกนเบิร์ก, คริส เฮลมัธ, เอเดรียน เฮรูเบล, แดน โฮราค, ธิอาโก้ ไอซ์, แมตต์ จอห์นสัน, โรแนน เคอร์เยลล์, คริส คูลลา, เอลวิช เหลียง, แม็กซ์ ลิอานี, อดัม มาร์ติเนซ, จอห์น แมร์ติช, บาสเตียน มงตาญ, สตีน่า มอนเตโร, แพทริค มอร์ส, อเล็กซิส โอเบลต์, อีริช โอเชียน, มิคโก้ โอทามา, จิโน่ พาร์ก, อเล็กซี่ พาว์โลว์, มิทช์ ปราเตอร์, เจย์ เรย์โนลด์ส, เดแคลน รัสเซลล์, เบอนัวต์ รุยซ์, แพทริค ชีบ์, อเล็กซ์ ชวอร์เรอร์, โจนาธาน สครูกส์, เซอร์เกย์ ชารีบิน, มาร์ค ซิสสัน, ซานดิป ชุคลา, คลิฟ สไตน์, สเตฟาน สไตน์บาค, ลูยา ชิมบาลังกา, เอสเตบัน โตวายารี, เบรชท์ ฟาน ลอมเมล, ธิโบลต์ แวร์ญ, อเล็กซานเดอร์ ฟอน นอร์ริ่ง, ไอดาน เวลช์, อเล็กซ์ เวลส์, โรมัน ซูลัค (เรียงตามตัวอักษร หากเราปล่อยใครออกไป ถือเป็นการไม่ได้ตั้งใจ โปรดแจ้งให้เราทราบ)
เราไม่สามารถแสดงความขอบคุณอย่างเพียงพอต่อผู้จัดการของ Sony Pictures Imageworks ที่อนุญาตให้โปรเจ็กต์นี้ดำเนินต่อไป สนับสนุนด้วยใจจริง และอนุญาตให้เราเปิดเผยแหล่งที่มา โดยเฉพาะ Rob Bredow, Brian Keeney, Barbara Ford, Rene Limberger, Erik Strauss และ Mike ฟอร์ด.
ขอขอบคุณอย่างยิ่งต่อทีม crack shading ที่ SPI และ lookdev TDs และ CG superes ผู้กล้าหาญที่ยินดีใช้ OSL ในรายการของพวกเขา พวกเขาทำหน้าที่เป็นหนูตะเภา เป็นแรงบันดาลใจ ผู้ทดสอบ และเป็นแหล่งความคิดเห็นที่ยอดเยี่ยม และแน่นอนว่า วิศวกร TD และศิลปินจากที่อื่น ๆ มากมายที่รวม OSL เข้ากับผลิตภัณฑ์และขั้นตอนการผลิตของตน โดยเฉพาะอย่างยิ่งผู้ที่รับความเสี่ยงในช่วงแรก ๆ ที่ Chaos Group, Double Negative, Pixar, DNA, Isotropix และ Animal Logic ขอขอบคุณ และเราหวังว่าเราจะสามารถตอบสนองความต้องการของคุณได้
OSL ไม่ได้ถูกพัฒนาแยกกัน เราเป็นหนี้บุคคลและสตูดิโอที่อดทนอ่านร่างข้อกำหนดภาษาฉบับร่างในช่วงแรก ๆ และให้ข้อเสนอแนะที่เป็นประโยชน์และแนวคิดเพิ่มเติมแก่เรา เช่นเดียวกับการสนับสนุนอย่างต่อเนื่องและข้อเสนอแนะของนักพัฒนาปัจจุบันและผู้ใช้ที่ VFX และสตูดิโอแอนิเมชั่นอื่น ๆ
การใช้งาน OSL ขึ้นอยู่กับแพ็คเกจโอเพ่นซอร์สอื่นๆ มากมาย ทั้งหมดนี้มีใบอนุญาตที่เข้ากันได้:
เอกสารของ OSL ประกอบด้วยส่วนของ Markdeep (c) 2015-2016, Morgan McGuire และ highlight.js (c) 2006, Ivan Sagalaev ซึ่งทั้งสองส่วนเผยแพร่ภายใต้ใบอนุญาต BSD