การสุ่มตัวอย่างความสำคัญของแผนที่สิ่งแวดล้อม


14

อะไรคือวิธีที่ได้รับการพิสูจน์แล้วว่าดีที่สุดในปัจจุบันสำหรับการสุ่มตัวอย่างแมปสภาพแวดล้อม (EM) ในตัวติดตามเส้นทางแบบทิศทางเดียวที่ใช้ MIS และตัวเรนเดอร์ประเภทเดียวกันนี้ ฉันต้องการโซลูชันที่มีความซับซ้อนพอสมควรในขณะที่ใช้งานได้อย่างสมเหตุสมผลกับตัวอย่างที่ให้การสุ่มตัวอย่างที่สมบูรณ์แบบในราคาที่ซับซ้อนและยากต่อการใช้งาน

สิ่งที่ฉันรู้จนถึงตอนนี้

มีวิธีง่ายๆในการสุ่มตัวอย่าง EM หนึ่งสามารถสุ่มตัวอย่างซีกโลกที่ต้องการในลักษณะน้ำหนักโคไซน์ซึ่งละเว้นทั้งรูปร่างของฟังก์ชัน BSDF และ EM ด้วยเหตุนี้มันไม่ทำงานกับ EM แบบไดนามิก:

ป้อนคำอธิบายรูปภาพที่นี่

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

ป้อนคำอธิบายรูปภาพที่นี่

เอกสาร

ฉันได้พบบทความสองสามเรื่องในหัวข้อนี้ แต่ยังไม่ได้อ่าน การอ่านและการใช้งานสิ่งเหล่านี้มีค่าในการติดตามเส้นทางแบบทิศทางเดียวหรือมีบางสิ่งที่ดีกว่านี้หรือไม่?


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

ไม่ @tom ใช้การสุ่มตัวอย่าง EM แบบเชิงเส้นเท่านั้นโดยไม่สนใจทั้ง (Lambert) BRDF และปัจจัยโคไซน์ มีการใช้ตัวอย่าง 64 ตัวอย่างและไม่ใช้การกรองภาพในพื้นที่เพียงเฉลี่ยเหนือพื้นที่พิกเซล เมื่อ MIS ถูกนำมาใช้เพื่อรวมการสุ่มตัวอย่าง EM กับการสุ่มตัวอย่างโคไซน์เสียงรบกวนในเงาจะลดลงมาก แต่เพิ่มขึ้นเล็กน้อยในส่วนที่มีแสงแดดส่องถึง
ivokabel

คำตอบ:


6

นี้ไม่ได้เป็นคำตอบทั้งหมดผมจะเพียงแค่ต้องการที่จะแบ่งปันความรู้ที่ผมได้รับจากการศึกษาทั้งสองของเอกสารที่กล่าวถึงในคำถาม: Steerable สำคัญการเก็บตัวอย่างและการปฏิบัติสำคัญสินค้าสุ่มตัวอย่างสำหรับตรงสว่าง

สุ่มตัวอย่างสำคัญนำ

ในบทความนี้พวกเขาเสนอวิธีการสุ่มตัวอย่างผลิตภัณฑ์ของส่วนประกอบโคไซน์ยึดและไฟแผนที่สภาพแวดล้อม:

LEM(ωi)(ωin)+

พวกเขาใช้ประโยชน์จากความจริงที่ว่าการประมาณค่าเชิงเส้นแบบชิ้นเดียวของฟังก์ชันผลิตภัณฑ์สามารถแสดงได้ค่อนข้างดีและคำนวณล่วงหน้าบางส่วนโดยใช้ฐานฮาร์มอนิกทรงกลมเก้าตัวแรก พวกเขาสร้างการประมาณค่านี้ขึ้นบน EM ที่ได้รับการวิเคราะห์แบบสามเหลี่ยมและใช้เป็นฟังก์ชันที่สำคัญสำหรับการสุ่มตัวอย่าง

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

ขั้นตอนการสุ่มตัวอย่างประกอบด้วยการเลือกสามเหลี่ยมและการสุ่มตัวอย่างพื้นที่:

  • สามเหลี่ยมถูกเลือกโดยการลงไปที่ต้นไม้ไบนารีที่สร้างไว้ล่วงหน้าพร้อมความน่าจะเป็นสัดส่วนกับการประมาณย่อยแบบอินทิกรัล ค่าใช้จ่ายนี้การคำนวณแบบทันทีทันใดของซับอินทิกรัลแต่ละอันประกอบด้วยผลิตภัณฑ์ภายในหนึ่งตัวของพิกัดฮาร์มอนิกทรงกลมแบบยึดกับโคไซน์กับสัมประสิทธิ์ที่คำนวณล่วงหน้า O(logN)
  • พื้นผิวสามเหลี่ยมที่เลือกนั้นจะถูกสุ่มตัวอย่างในเวลาในรูปแบบสองเส้นโดยกลยุทธ์การสุ่มตัวอย่างแบบแบ่งชั้นแบบใหม่ที่เสนอในกระดาษO(1)

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

การสุ่มตัวอย่างความสำคัญของผลิตภัณฑ์ในทางปฏิบัติสำหรับการส่องสว่างโดยตรง

ในบทความนี้พวกเขาเสนอวิธีการสุ่มตัวอย่างผลิตภัณฑ์ของแสงแผนที่สภาพแวดล้อมและการสะท้อนพื้นผิวโคไซน์ - น้ำหนัก:

LEM(ωi)fr(ωi,ωo,n)(ωin)+

การประมวลผลล่วงหน้าเพียงอย่างเดียวในวิธีนี้คือการคำนวณการแสดงลำดับชั้นของ EM (ไม่ว่าจะเป็น mipmap หรือ wavelet) ส่วนที่เหลือจะทำทันทีระหว่างการสุ่มตัวอย่าง

ขั้นตอนการสุ่มตัวอย่าง:

  • การสร้างการประมาณแบบ BRDF แบบ on-the-fly: พวกเขาวาดตัวอย่างความสำคัญ BRDF หลายรายการและประเมิน + จากค่าเหล่านี้พวกเขาสร้างการประมาณค่าคงที่ชิ้นส่วนตามควอดทรีของ BRDF โดยที่ใบไม้แต่ละต้นของต้นไม้มีตัวอย่างหนึ่งตัวอย่างfr(ωi,ωo,n)(ωin)+
  • การคำนวณผลิตภัณฑ์ของการประมาณ BRDF และ EM: การคูณจะกระทำที่ใบ Quadtree BRDF และค่าเฉลี่ยจะแพร่กระจายไปยังผู้ปกครอง
  • การสุ่มตัวอย่างผลิตภัณฑ์: ตัวอย่างสม่ำเสมอจะถูกป้อนผ่านแผนผังผลิตภัณฑ์โดยใช้การสุ่มตัวอย่างแบบง่าย

ขั้นตอนควรสร้างตัวอย่างที่ค่อนข้างดีด้วยค่าใช้จ่ายในการคำนวณล่วงหน้าอย่างหนัก - พวกเขาแสดงให้เห็นว่าต้องการตัวอย่าง BRDF ประมาณ 100–200 BRDF สำหรับการประมาณ BRDF เพื่อให้ได้ประสิทธิภาพการสุ่มตัวอย่างที่ดีที่สุด สิ่งนี้อาจทำให้มันเหมาะสำหรับการคำนวณการส่องสว่างโดยตรงโดยตรงโดยที่หนึ่งสร้างตัวอย่างจำนวนมากต่อจุดแรเงา แต่ส่วนใหญ่อาจแพงเกินไปสำหรับอัลกอริธึมการส่องสว่างระดับโลก (เช่นตัวติดตามเส้นทางแบบทิศทางเดียวหรือสองทิศทาง) ซึ่งคุณมักจะสร้างตัวอย่างเพียงไม่กี่ ต่อจุดแรเงา


4

คำเตือน: ฉันไม่รู้ว่าอะไรคือสิ่งที่ทันสมัยในการสุ่มตัวอย่างแผนที่สิ่งแวดล้อม อันที่จริงฉันมีความรู้น้อยมากเกี่ยวกับหัวข้อนี้ ดังนั้นนี่จะไม่เป็นคำตอบที่สมบูรณ์ แต่ฉันจะกำหนดปัญหาทางคณิตศาสตร์และวิเคราะห์มัน ฉันทำสิ่งนี้เพื่อตัวเองเป็นหลักดังนั้นฉันทำให้ชัดเจนสำหรับตัวเอง แต่ฉันหวังว่า OP และคนอื่น ๆ จะพบว่ามีประโยชน์


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

I=S2f(ωi,ωo,n)L(ωi)(ωin)+dωi
f(ωi,ωo,n)L(ωi)(ωin)++(ωin)+=0(ωin)<0

เราประมาณค่าอินทิกรัลนี้โดยสร้าง samples ด้วยความเคารพความหนาแน่นของความน่าจะเป็นฟังก์ชันตัวประมาณคือ Nωi1,,ωiNp(ωi)

I1Nk=1Nf(ωik,ωo,n)L(ωik)(ωikn)+p(ωik)

คำถามคือเราจะเลือก pdfเพื่อให้เราสามารถสร้างตัวอย่างในเวลาที่ยอมรับได้และความแปรปรวนของตัวประมาณค่าด้านบนมีขนาดเล็กพอสมควรp


วิธีที่ดีที่สุดเลือกให้เป็นสัดส่วนกับปริพันธ์ แต่ส่วนมากแล้ว แพงมากในการสร้างตัวอย่างตามไฟล์ PDF นี้ดังนั้นจึงไม่มีประโยชน์ในทางปฏิบัติp

p(ωi)f(ωi,ωo,n)L(ωi)(ωin)+

วิธีการที่แนะนำโดย OP:

วิธีที่หนึ่ง : เลือกตามสัดส่วนกับคำว่าโคไซน์ วิธีที่สอง : เลือกตามสัดส่วนกับ EM p

p(ωi)(ωin)+
p
p(ωi)L(ωi)

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


ถ้าเรามีฟังก์ชั่นของหนึ่งตัวแปรจริงเช่น(x) จากนั้นถ้ามันมีพฤติกรรมที่ดีก็สามารถขยายเป็นชุดพลังงาน โดยที่เป็นค่าคงที่ สิ่งนี้สามารถใช้เพื่อประมาณโดยตัดทอนผลรวมในบางขั้นตอน ถ้าสูงพอแล้วข้อผิดพลาดนั้นเล็กจริง ๆf(x)

f(x)=k=0akxk
akfn
f(x)k=0nakxk
n

ตอนนี้ถ้าเรามีฟังก์ชั่นในสองตัวแปรเช่นเราสามารถขยายได้เฉพาะในอาร์กิวเมนต์แรก ที่ มีฟังก์ชั่นเฉพาะในปีมันสามารถขยายได้ทั้งในอาร์กิวเมนต์ โดยที่เป็นค่าคงที่ ดังนั้นฟังก์ชั่นที่มีอาร์กิวเมนต์จริงสามารถขยายได้เป็นผลรวมของพลังของอาร์กิวเมนต์นั้น สิ่งที่คล้ายกันสามารถทำได้สำหรับฟังก์ชั่นที่กำหนดไว้ในทรงกลมf(x,y)

f(x,y)=k=0bk(y)xk
bk(y)y
f(x,y)=k,l=0cklxkyl
ckl

ตอนนี้ขอมีฟังก์ชั่นที่กำหนดไว้บนทรงกลมเช่นomega) ฟังก์ชั่นดังกล่าวสามารถขยายในลักษณะคล้ายกันกับฟังก์ชั่นของพารามิเตอร์จริงหนึ่งตัว โดยที่เป็นค่าคงที่และมีดนตรีทรงกลม โดยปกติฮาร์มอนิกส์ทรงกลมจะมีดัชนีสองดัชนีและเขียนเป็นฟังก์ชั่นในพิกัดกลม แต่นั่นไม่สำคัญ สิ่งสำคัญคือสามารถเขียนเป็นผลรวมของฟังก์ชั่นที่รู้จักกันบางอย่างf(ω)

f(ω)=k=0αkSk(ω)
αkSk(ω)f

ตอนนี้ฟังก์ชั่นซึ่งใช้สองจุดบนทรงกลมเช่นสามารถขยายได้เฉพาะในอาร์กิวเมนต์แรก หรือทั้งสองข้อโต้แย้ง f(ω,ω)

f(ω,ω)=k=0βk(ω)Sk(ω)
f(ω,ω)=k,l=0γklSk(ω)Sl(ω)

ดังนั้นทั้งหมดนี้มีประโยชน์อย่างไร

ฉันเสนอ CMUNSM (บ้าจิตไร้ประโยชน์วิธีการสุ่มตัวอย่าง): สมมติว่าเรามีการขยายสำหรับฟังก์ชั่นทั้งหมดคือ ถ้าเราเสียบนี่เข้าไป อินทิกรัลเรารับ

f(ωi,ωo,n)=k,l,m=0αklmSk(ωi)Sl(ωo)Sm(n)L(ωi)=n=0βnSn(ω)(ωin)+=p,q=0γpqSp(ωi)Sq(n)
I=k,l,m,n,p,q=0αklmβnγpqSl(ωo)Sm(n)Sq(n)S2Sk(ωi)Sn(ω)Sp(ωi)dωi

ที่จริงแล้วเราไม่ต้องการ Monte Carlo อีกต่อไปเพราะเราสามารถคำนวณค่าของอินทิกรัลมาก่อนแล้วประเมินผลรวม รวมเราจะรวมกันแค่คำสองสามคำแรก) และเราจะได้ผลลัพธ์ที่ต้องการS2Sk(ωi)Sn(ω)Sp(ωi)dωi

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


ดังนั้นความคิดจะไม่ขยายในการขัดแย้งทั้งหมด วิธีการหนึ่งที่อาจคุ้มค่ากับการตรวจสอบคือละเว้น BSDF และขยายเฉพาะแผนที่สิ่งแวดล้อมเช่น สิ่งนี้จะนำไปสู่ ​​pdf: P ( ω ฉัน ) ~ K Σ n = 0 β n S n ( ω ฉัน ) ( ω n ) +

L(ωi)n=0KβnSn(ωi)
p(ωi)n=0KβnSn(ωi)(ωn)+

เรารู้อยู่แล้วว่าวิธีการที่จะทำเช่นนี้สำหรับนี้เป็นอะไร แต่วิธีการหนึ่ง ฉันเดาคือมันจะทำในหนึ่งในเอกสารที่สูงขึ้นสำหรับKKK=0K


ส่วนขยายเพิ่มเติม คุณสามารถขยายฟังก์ชั่นที่แตกต่างกันในการขัดแย้งที่แตกต่างกันและทำสิ่งที่คล้ายกันดังกล่าวข้างต้น อีกสิ่งหนึ่งคือคุณสามารถขยายได้ในพื้นฐานที่แตกต่างกันเช่นไม่ใช้ฮาร์โมนิกทรงกลม

ดังนั้นนี่คือสิ่งที่ฉันใช้ในหัวข้อฉันหวังว่าคุณจะพบว่าอย่างน้อยก็มีประโยชน์นิดหน่อยและตอนนี้ฉันไปที่ GoT และเตียง


ฮ่าฮ่าเมื่อฉันโพสต์คำตอบ SE ถามฉันว่าฉันเป็นมนุษย์หรือหุ่นยนต์ไซต์ไม่แน่ใจ: DI หวังว่ามันจะไม่ใช่เพราะความยาวของคำตอบมันออกมาจากมือเล็กน้อย
ทอม

คุณต้องการทำให้สมองของฉันละลายใช่ไหม ;-) BTW: ฉันได้อ่านบทความ / งานนำเสนอสองฉบับแล้วดังนั้นฉันหวังว่าฉันจะได้ขยายคำถามหรือเขียนคำตอบผิวเผินในตอนท้ายของสัปดาห์นี้ และตอนนี้ GoT FTW!
ivokabel

0

ในขณะที่วิธีการสุ่มตัวอย่างผลิตภัณฑ์ให้การกระจาย (สมบูรณ์) ที่ดีกว่าสำหรับรังสีฉันจะบอกว่าการใช้ MIS (การสุ่มตัวอย่างที่สำคัญหลายครั้ง) เป็นวิธีการตรวจสอบในการผลิต เนื่องจากข้อมูลการแรเงาเป็นการสุ่มตัวอย่างผลิตภัณฑ์ที่ไม่รู้จักจึงไม่สมบูรณ์แบบและเป็นเรื่องยากที่จะบอกนัย การยิงรังสีมากขึ้นอาจมีค่ามากกว่า! ขึ้นอยู่กับสถานการณ์และงบประมาณของคุณแน่นอน!

คำอธิบายสั้น ๆ ของระบบสารสนเทศ: ในสาระสำคัญคุณติดตามทั้ง BSDF-ray (ตามที่คุณต้องการสำหรับการทำแสงทางอ้อม) และรังสีที่ชัดเจนต่อ EM MIS ให้น้ำหนักคุณเพื่อให้คุณสามารถรวมเข้ากับวิธีที่ขจัดเสียงรบกวนได้มาก ระบบสารสนเทศเป็นสิ่งที่ดีโดยเฉพาะอย่างยิ่งในการเลือก "เทคนิค" (การสุ่มตัวอย่างโดยนัยหรือโดยชัดแจ้ง) ตามสถานการณ์ที่เกิดขึ้น สิ่งนี้เกิดขึ้นตามธรรมชาติโดยที่ผู้ใช้ไม่ต้องทำการเลือกอย่างหนักตามความหยาบและอื่น ๆ

บทที่ 9 ของhttp://graphics.stanford.edu/papers/veach_thesis/ครอบคลุมรายละเอียดนี้ ดูhttps://www.shadertoy.com/view/4sSXWtสำหรับการสาธิต MIS ในการใช้งานพร้อมไฟในพื้นที่


ใช่ MIS เป็นเทคนิคการตรวจสอบการผลิตที่สำคัญซึ่งช่วยได้มากและฉันใช้มันในการแก้ปัญหาของฉัน (ฉันเดาว่าฉันควรระบุไว้อย่างชัดเจนในคำถาม) อย่างไรก็ตามประสิทธิภาพโดยรวมของตัวประมาณค่า MIS นั้นขึ้นอยู่กับคุณภาพของกลยุทธ์การสุ่มตัวอย่างบางส่วน สิ่งที่ฉันพยายามทำที่นี่คือการปรับปรุงหนึ่งในกลยุทธ์ย่อยเพื่อปรับปรุงประสิทธิภาพโดยรวมของตัวประมาณ จากประสบการณ์ของฉันมักจะมีประสิทธิภาพมากขึ้นในการใช้ตัวอย่างคุณภาพต่ำน้อยกว่าอาจมีราคาแพงกว่าการสร้างมากกว่าตัวอย่างคุณภาพต่ำที่สร้างได้ง่ายกว่า
ivokabel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.