physically-based rendering for physically-based rendering 3.1introduzione il physically-based...

Download Physically-based Rendering for Physically-based Rendering 3.1Introduzione Il Physically-based Rendering,

Post on 16-Oct-2019

6 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Physically-based Rendering for OpenGL

    Studente/i

    Brian Dalle Pezze

    Relatore

    Achille Peternier

    Correlatore

    Committente

    SUPSI

    Corso di laurea

    Ingegneria Informatica

    Modulo

    C09910

    Anno

    2017/18

    Data

    31 Agosto 2018

  • i

    Indice

    Abstract 1

    1 Contesto del Progetto 3

    1.1 Descrizione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    1.2 Compiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    1.3 Obbiettivi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    1.4 Tecnologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    1.5 Milestones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    2 Teorie fondamentali 5

    2.1 Riflessione e rifrazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    2.2 Microfacet Theory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    3 Physically-based Rendering 9

    3.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    3.1.1 BRDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    3.1.2 Equazione di rendering . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    3.2 Cook-Torrance BRDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    3.2.1 Normal Distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    3.2.2 Fresnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    3.2.3 Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

    4 Implementazione 17

    4.1 Primi passi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    4.1.1 Risultati intermedi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    4.2 Passaggio a Overvision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    4.2.1 Decisioni finali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    4.2.2 Modifiche alla classe Material . . . . . . . . . . . . . . . . . . . . . . . 24

    4.2.3 Modifiche al Plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    4.2.3.1 Over3DS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    4.2.3.2 OVOreader . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    Physically-based Rendering for OpenGL

  • ii INDICE

    4.2.3.3 Conversione materiali . . . . . . . . . . . . . . . . . . . . . . 30

    4.3 Shader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

    5 Conclusione 43

    5.1 Risultati ottenuti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

    5.2 Miglioramenti futuri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    5.2.1 Subsurface Scattering . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    5.2.2 Image-based Lighting . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    Allegati 53

    Bibliografia 55

    Physically-based Rendering for OpenGL

  • iii

    Elenco delle figure

    1 Incidenza della luce luce su una superficie . . . . . . . . . . . . . . . . . . . 5

    2 Dimostrazione grafica della Microfacet Theory . . . . . . . . . . . . . . . . . . 7

    3 Normal Distribution in funzione della roughness, valore crescente da sinistra

    verso destra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    4 Diverse intensità di Fresnel su sfere viste in controluce . . . . . . . . . . . . . 13

    5 Effetto della Geometry Function con roughness crescente: si può notare

    come l’ombra si faccia più marcata e la distinzione meno nitida mentre la

    superficie si scurisce leggermente . . . . . . . . . . . . . . . . . . . . . . . . 16

    6 Serie di sfere per testare le caratteristiche: sull’asse x c’è un valore crescente

    di roughness, mentre sull’asse y un valore crescente di metalness . . . . . . . 18

    7 Vista ravvicinata delle sfere metalliche . . . . . . . . . . . . . . . . . . . . . . 19

    8 Vista ravvicinata delle sfere dielettriche . . . . . . . . . . . . . . . . . . . . . 20

    9 Sfere viste in controluce: notare Fresnel ben visibile su quelle centrali . . . . . 21

    10 La sfera a sinistra è mappata come ferro arrugginito, quella a destra come

    marmo liscio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    11 Snippet delle API di IGameMaterial, si possono notare i getter dei tipici para-

    metri per Phong . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    12 Sfere renderizzate con il modello di Phong (demoBullet) . . . . . . . . . . . . 31

    13 Sfere renderizzate con PBR (demoBullet) . . . . . . . . . . . . . . . . . . . . 31

    14 Dettaglio di un punto caldo di riflessione con Phong (demoBullet) . . . . . . . 32

    15 Dettaglio di un punto caldo di riflessione con PBR (demoBullet) . . . . . . . . 32

    16 Dettaglio testa di leone con Phong (demo) . . . . . . . . . . . . . . . . . . . . 33

    17 Dettaglio testa di leone con PBR (demo) . . . . . . . . . . . . . . . . . . . . . 33

    18 Dettaglio statua di marmo con Phong (demo) . . . . . . . . . . . . . . . . . . 34

    19 Dettaglio statua di marmo con PBR (demo) . . . . . . . . . . . . . . . . . . . 34

    20 Scena generale della demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

    21 Dettaglio statua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

    22 Dettaglio pistola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

    Physically-based Rendering for OpenGL

  • iv ELENCO DELLE FIGURE

    23 Dettaglio sfere di vari materiali . . . . . . . . . . . . . . . . . . . . . . . . . . 47

    24 Dettaglio spada. Notare il riflesso del metallo tipico del PBR. . . . . . . . . . . 48

    25 Dettaglio teiere di materiale metallico (sopra) e dielettrico (sotto) con rough-

    ness crescente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    26 Esempi di Subsurface Scattering a diverse profondità . . . . . . . . . . . . . . 50

    27 L’IBL consente di avere un riflesso della scena circostante, rendendo la per-

    cezione dei materiali più realistica . . . . . . . . . . . . . . . . . . . . . . . . 51

    Physically-based Rendering for OpenGL

  • v

    Elenco delle tabelle

    1 F0 per vari materiali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    Physically-based Rendering for OpenGL

  • vi ELENCO DELLE TABELLE

    Physically-based Rendering for OpenGL

  • 1

    Abstract

    Il Physically-based rendering (o PBR) è un modello di illuminazione che cerca di simulare in

    modo simile alla fisica il funzionamento della luce nel mondo reale, allo scopo di aumentare

    il fotorealismo delle scene o rendere più naturali e piacevoli all’occhio i materiali renderizzati.

    I PBR sono caratterizzati dall’utilizzo di BRDF (Bidirectional Reflective Distribution Function),

    che simulano la riflessione della luce, la conservazione dell’energia (distinzione mutualmen-

    te esclusiva tra luce riflessa e rifratta) e l’applicazione della Microfacet Theory, che simula il

    comportamento generalizzato di ogni superficie dipendentemente dalla sua rugosità.

    Physically-based rendering (PBR) is a lighting model that tries to mimic in a physical-like

    manner how light works in the real world in order to improve photorealism and to make ma-

    terials appear more natural and pleasant to the human eye.

    PBRs are characterized by the implementation of a BRDF (Bidirectional Reflective Distri-

    bution Function), that emulates light reflection, an energy conservation principle (mutual di-

    stinction between refracted and reflected light) and the applicaton of the Microfacet Theory,

    that simulates the general behaviour of a surface based on its roughness.

    Physically-based Rendering for OpenGL

  • 2 ELENCO DELLE TABELLE

    Physically-based Rendering for OpenGL

  • 3

    Capitolo 1

    Contesto del Progetto

    1.1 Descrizione

    Lo scopo di questo progetto è quello di riuscire a implementare un modello di illuminazione

    physically-based nel motore grafico fornito dal docente e utilizzato al DTI per vari progetti.

    Vanno vagliate le opzioni disponibili per quanto riguarda i metodi di rendering physically-

    based in utilizzo al momento e la loro compatibilità con le pipeline già presenti nel motore.

    1.2 Compiti

    • Investigare l’ultima generazione di PBR sviluppata, dalla teoria alla sua implementa- zione

    • Discutere con il docente le diverse varianti di PBR da implementare con attenzione al miglior rapporto tra potenza computazionale richiesta, complessità algoritmica e

    compatibilità con il software di rendering esistente

    • Definire il tipo di informazioni che un modello 3D necessita per funzionare con il PBR, inclusa la ricerca di campioni da usare per sviluppo, testing e validazione

    • Integrare il PBR nel software di rendering 3D basato su OpenGL fornito dal docente

    1.3 Obbiettivi

    • Implementare il PBR 3D in real-time al m

Recommended

View more >