Tại sao một nửa vectơ không được sử dụng trong tính toán Fresnel BRDF khuếch tán?


8

Tôi hiện đang làm việc với Ánh sáng khuếch tán PBR của Earl Hammon Jr cho GGX + Smith microsurfaces (hiện được đề cập là [PBR, p.XYZ] và đã đọc qua (trong số những người khác) Shading dựa trên vật lý của Brent Burley tại Disney (hiện được đề cập là [DIS , trang XYZ] để có được thành phần BRDF khuếch tán tốt. Tôi bị mắc kẹt trong việc kết hợp cả hai với Thuật ngữ Fresnel.

Giới thiệu ngắn cho vectơ và góc khi tôi sử dụng chúng:

  • ωTôi là vectơ ánh sáng
  • ωo là vectơ xem
  • là hình học vĩ mô bình thườngωn

  • là góc giữa ω i ω nθTôiωTôiωn

  • là góc giữa ω o ω nθoωoωn
  • là góc giữa ω n ω hθhωnωh
  • là góc giữa ω i ω hαhTôiωiωh
  • là góc giữa ω o ω h (sự phân biệt này là để làm rõ)αhoωoωh
  • là bất kỳ góc nào α h i , α h o , vì chúng bằng nhauαhαhiαho

bây giờ cho rằng là thuật ngữ BRDF của thành phần đầu cơ không có yếu tố fresnel và r d theo thuật ngữ của thành phần khuếch tán mà không có công cụ fresnel, hệ số fresnel được viết là F ( a n g l e ) . [PBR, tr.105] đề cập rằng ánh sáng khuếch tán được truyền hai lần, một lần vào và một lần ra. Do đó, thành phần Fresnel phải được nhân hai lần. [PBR, tr. 106] tiếp tục nói rằng các định luật Fresnel là đối xứng, nghĩa là đi vào và ra đi là độc lập với hướng (nghĩa là một khi chúng ta đi vào vật liệu từ không khí và một khi chúng ta rời khỏi không khí). Bây giờ tôi sẽ giả sử (cho F 1rsrdF(angle)F1là Fresnel để nhập và là để Fresnel rời khỏi vật liệu) để sử dụngF2

(1F1(αhi))(1F2(αho))

F 2 là những chức năng tương tự, và α h i α h o là góc như nhau, do đóF1F2αhiαho

(1F(αh))2

Điều này sẽ dẫn đến một brdf :f

f=F(αh)rs+(1F(αh))2rd

Nhưng cả [PBR, p.113] và [DIS, p.14] đều sử dụng

f=F(αh)rs+(1F(θi))(1F(θo))rd

cũng như bài báo gốc sử dụng loại tính toán này của Shirely et al. 1997. Tôi không hiểu điều này, tại sao họ thay đổi từ góc microfacet sang góc vĩ mô? Các góc microfacet dẫn đến cuộc trò chuyện năng lượng

( 1 - F ) [ 0 , 1 ] ( 1 - F ) 2[ 0 , 1 ]F[0,1] (1F)[0,1] (1F)2[0,1](1F(αh))>=(1F(αh))2)

nó nên có đi có lại

f(θi,θo)=F(αhi)rs+(1F(αhi))(1F(αho)rd=F(αh)rs+(1F(αh))2rd=F(αho)rs+(1F(αho))(1F(αhi))rd=f(θo,θi)

và do đó đáp ứng các yêu cầu BRDF. Góc microfacet được sử dụng cho thuật ngữ cụ thể, do đó, điều hợp lý hơn là nội suy giữa thành phần chính và khuếch tán (bỏ qua thực tế hai lần truyền cho đối số này). Thay vào đó, [PBR, tr.113] và [DIS, p. 14] đặt vào một phép tính độ nhám và để lại điều đó không giải thích được.θh

Ngoài ra đến sự nhầm lẫn của tôi về vấn đề này, trong slide giải thích [PBR, p.187] sử dụng dấu chấm sản phẩm (và do đó αωhωo ) và sau đó trên [PBR, p. 191] cũng là dấu chấm sản phẩm ω h * ω i ( alpha h i ).αhoωhωiαhi

Câu trả lời:


5

Cuối cùng tôi đã tìm ra một lỗ hổng trong lập luận của mình để sử dụng nửa vectơ cho phần khuếch tán.

phiên bản tl; dr:

α h o không bằng nhau, giả định này chỉ hoạt động cho phần đầu cơ. Do đó, bảo tồn năng lượng không được đưa ra.αhiαho

Chính xác hơn: Theo định nghĩa , nhưng bạn không được phép sử dụng chúng trong phương trình, bạn cần sử dụng các quy tắc microfacet thay vì nửa vectơ. Tuy nhiên, microfacet bình thường và nửa vectơ thường không bằng nhau.αhi=αho

phiên bản dài:

BRDF khuếch tán (giống như mẫu đầu cơ) là một sự tích hợp trên tất cả các quy tắc microfacet có thể. Mẫu BRDF tổng quát là:

(1)

f=ΩρmDGcos(αhi)cos(αho)cos(θi)cos(θo)

trong đó ρm là hành vi của ánh sáng khi chạm tới microfacet, là hàm phân phối bình thường, G là hàm hình học và phần còn lại là chuẩn hóa [PBR, p.16-25] [HEI, p.61f.]DG

Bây giờ đối với BRDF đầu cơ, hành vi là sự phản ánh hoàn hảo. Điều này có nghĩa là, chỉ các microfacet trong đó microfacet bình thường bằng nửa vectơ ω h giữa ánh sáng ( ω i ) và hướng nhìn ( ω o ) phản chiếu ánh sáng từ hướng ánh sáng sang hướng nhìn. Về mặt toán học, điều này chuyển đến một hàm Dirac Delta δ ( ω h ) . Lượng ánh sáng phản xạ được xác định bởi Fresnel F . Với kế toán cho các thay đổi miền tích hợp [PBR, p.31-41], điều này dẫn đến ( ρ m , sωmωhωiωoδ(ωh)Fρm,s là phản ứng đặc hiệu cụ thể của microfacet cho phần cơ bản):

(2)

ρm,s=δ(ωh)F4αhiαho

Cắm này vào (1) và bạn tích hợp trên bất kỳ , nhưng hàm delta Dirac khiến bạn bỏ qua bất cứ điều gì nơi ω mω h . Đây là điều tốt đẹp về các hàm delta dirac, "hủy" tích phân. Do đó, bạn đến với BRDF nổi tiếng [PBR, p.43]ωmωmωh

(3)

fs=FDG4cos(θi)cos(θo)

và ở đây bạn hoàn toàn có thể giả sử . Phần Fresnel làm cho một phía của phép nội suy tuyến tính (xem đây là tỷ lệ ánh sáng được phản xạ đặc biệt).αhi=αho

Mặt khác, bạn vẫn có một tích phân và bạn không thể "hủy bỏ" nó với bất cứ điều gì. Hãy là góc giữa microfacet bình thường và dir ánh sáng, theta_mo giữa microfacet bình thường và xem dir (như trái ngược với α h iαθmiαhiαho

(4)

θmiαhi=αh=αhoθmoωmωh

ρm,d(1F(αh))

ρm,d

Nếu bạn quản lý để kéo 1F

Nếu bạn vẫn muốn sử dụng một nửa vectơ cho "Fresnelinterpolation", thì bạn cần phải chuẩn hóa.

f=F(αh)rs+(1F(αh))rdk

k

rdk=1

rd

θiθo

αhθiθo

Thay vào đó, chúng ta có thể sửa đổi thuật ngữ mờ thành một xấp xỉ đơn giản để nắm bắt hành vi góc định tính quan trọng [...].

[SHI, tr.46]

Thảo luận về lý do tại sao điều này rất khó để tìm ra

Bây giờ [DIS, tr.14] và [PBR, p.100,184] đã trích dẫn [SHI] và [ASH] về điều này, trong đó [ASH] sử dụng [SHI], do đó, nó sôi sục theo mô hình của cái sau. Và xem [DIS] và [PBR] là những ấn phẩm không khoa học (mặc dù được suy nghĩ khá kỹ), tôi không thể mắc lỗi chúng quá nhiều, nhưng thực sự, một cách tốt hơn để trích dẫn các bài báo hoặc giải thích thêm có thể đã giúp và lưu lại Tôi khoảng 2 tuần suy nghĩ, đọc và gần như bắt đầu một bài báo về lý do tại sao mọi người (được cho là) ​​sai.

Hơn nữa, không ai trong số họ thực sự giải thích các xấp xỉ khuếch tán của họ, [PBR, tr.193] chỉ đề cập đến việc thử các chức năng khác nhau cho đến khi anh ta thấy một chức năng mình thích.

F(αh)1F(αh)F(θi)1F(αh)F(αh)1F(αh)F(θi) , tôi không thể nói.

Văn chương

  • [ASH] Một mô hình BRDF phong hướng dị hướng, trong Tạp chí Công cụ đồ họa Vol. 5, số 2, Michael Ashikhmin và Peter Shirley, 2000
  • [SCH] Mô hình BRDF không chuyên sâu để kết xuất dựa trên vật lý, trong Diễn đàn đồ họa máy tính Vol. 13, Số 3, Barshe Schlick, 1994
  • [SHI] Đánh giá của các học viên về các mô hình phản xạ ánh sáng, trong Hội nghị Thái Bình Dương về ứng dụng và đồ họa máy tính lần thứ năm, 1997. Kỷ yếu, Peter Shirley, Helen Hu, Brian Smits và Eric Lafortune, 1997
  • [DIS] Tạo bóng dựa trên vật lý tại Disney, tại Khóa học SIGGRAPH 2012: Tạo bóng dựa trên vật lý trong sản xuất phim và trò chơi, Brent Burley, 2012
  • [HEI] Tìm hiểu chức năng che mặt nạ trong BRDF dựa trên Microfacet, trong Tạp chí Kỹ thuật đồ họa máy tính Vol. 3, số 2, Eric Heitz, 2014
  • [PBR] Chiếu sáng khuếch tán PBR cho Kính hiển vi GGX + Smith, tại GDC2017, Earl Hammon Jr., 2017

1

Chúng tôi thực sự đang trải qua bài báo đó cho mô hình kim loại & edge_tint GGX BRDF của riêng chúng tôi và chúng tôi đã phát hiện ra một vấn đề quan trọng.

Hammon vẫn đang sử dụng phép tính xấp xỉ Fresnel Schlick cho dấu vết tia trường microfacet của mình, trong thực tế chỉ hoạt động đối với quang điện tử (và dây dẫn nhưng có hack).

F0=0 khi chúng tôi không muốn mô tả trên bề mặt.

https://github.com/Crisspl/IrrlichtBAW/commit/914b50d7238fc4a30f23fc2a4ea570e467f4ab75#r34031272

F0<0.02

(1F(θi))(1F(θo)) là một xấp xỉ chia nhỏ (fresnel với khía cạnh trung bình bình thường) thay vì tính toán thích hợp sẽ là trọng số trung bình của fresnel với mọi khía cạnh bình thường có thể, tất nhiên là có trọng số bởi hàm phân phối bình thường.

smoothroughmultiF0<0.02

roughα=1F0=0

Tôi hy vọng chúng tôi có thể gửi cho E. Hammon một email và xem liệu mô phỏng có thể được chạy lại cho Fresnel đầy đủ và phạm vi IoR (F0) mở rộng, bao gồm 1.0 (0.0) hay không.

EDIT: Seb. Lagarde cũng có mối quan tâm tương tự như tôi đã làm về Fresnel được sử dụng http://openprobols.realtimerendering.com/s2017/02-Phys Về cơ chế vật liệuWhereArewe.pdf

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.