Processo de Renderização


Este post irá descrever todas as grandes fases envolvidas no processo de renderização de uma cena 3D.

Minha meta é algum dia conseguir renderizar uma cena em real time semelhante ao que a Crytek fez na imagem ao lado (toda vez que eu vejo esta imagem eu não acredito que seja ela seja “real”) ….. de volta ao mundo real, vamos ao artigo =P

Renderização: Conceitos fundamentais

O processo de renderização é dividido em diversas etapas. Ele começa a partir da geração das geometrias e termina com a produção da imagem 2D final, passando pelas fases de posicionamento de objetos, posicionamento de câmera, projeção e rasterização.  A imagem abaixo mostra as principais fases.

Processos envolvidos na renderizacao baseada em rasterizacao

 

Geração da Geometria

Consiste na geração dos modelos gráficos que representarão cada objeto do mundo virtual. Para a computação gráfica, estes modelos não passam de uma descrição de primitivas gráficas e suas conexões. Em renderização de tempo real normalmente utilizam-se triângulos como primitiva básica, pois a pipeline das placas gráfica está otimizada para este uso.
Os triângulos podem ser representados de diversas maneiras, tais como Triangles Strip, Triangle Fans e Triangle List}. O formato de representação mais utilizado pelos renders e exportados pelos softwares de modelagem é a Triangle List indexada que são constituídas por uma lista de vértices e uma lista de índices.
A lista de vértice contém todos os vértices dos triângulos que fazem parte do modelo. Como eles normalmente representam superfícies sólidas conectadas, diversas primitivas compartilham seus vértices com triângulos adjacentes. Uma maneira de economizar espaço é armazenar os valores dos vértices uma única vez em uma lista e depois utilizar a lista de indices para descrever cada triângulo, conforme mostrado na figura abaixo

Vertices e Indices

 

Além das informações sobre a topologia dos triângulos, tem-se também dados relativo às cores de cada vértice, este tipo de informação é normalmente representada através de uma coordenada 2D que mapeia cada vértice para uma região de uma Textura 2D (pode-se armazenar cores diretamente nos vértices, porém esta pratica não é mais usual). Durante o processo de renderização, efetua-se uma “colagem”, no qual, a cada vértice do modelo, recupera-se a coordenada de textura armazenada e a interpola para toda a primitiva, para cada coordenada gerada, busca-se a cor armazenada na textura 2D e aplica-a na primitiva (Conforme mostrado na figura abaixo)

 

Texture Mapping

Outras informações adicionais podem ser fornecidas como normais do modelo a cada vértice (importante para o cálculo de iluminação) e tangentes a cada vértice (importante no uso de técnicas como Bump e Paralax Mapping).
O renderizador recebe um arquivo de texto ou binário descrevendo cada modelo ( que contém as informações discutidas anteriormente ) que será desenhado e converte-o em um formato interno adequado para realizar as transformações que serão explicadas a seguir.

Posicionando os Objetos na Cena
Os modelos gerados anteriormente estão em “espaço de modelo”, ou seja, o centro de coordenadas dele é o próprio baricentro (o centro do sistema de coordenadas aos quais os triângulos do modelo se referem é o baricentro do próprio modelo).
Uma cena 3D é constituída de diversos objetos espalhados pelo ambiente, desta forma, é necessário colocar cada um dos objetos em seu devido lugar. Este posicionamento consiste em aplicar uma transformação que levará o modelo do “espaço de modelo” para o “espaço de mundo” (passarão a referir-se ao centro da cena do mundo virtual ao invés do proprio baricentro).
As transformações consistem normalmente de uma translação, uma rotação e uma operação de escala (alteração no tamanho do objeto). Matematicamente, elas são representadas por matrizes 4×4, que podem ser facilmente combinadas com multiplicações. A posição de um vértice é representada por um vetor 4×1. (conforme mencionado, um vértice pode conter diversas outras informações além da posição).
De maneira resumida, posicionar os objetos no mundo virtual consiste em multiplicar cada um dos vértices do seus triângulos por uma transformação (comumente chamada de World Matrix). Caso o modelo contenha outras informações como normais ou tangentes, estas também devem ser transformadas.

Câmera
A cada instante (frame) pode-se observar apenas uma pequena fração do mundo virtual (semelhante a uma câmera fotográfica). Esta fração é definida em computação gráfica por uma câmera virtual que possui dois grupos de parâmetros, um primeiro associado ao posicionamento desta câmera (Matriz View) e um segundo associado a projeção (Matriz Projection).
Matematicamente, o processo de posicionar uma câmera no mundo consiste em construir um novo sistema de coordenadas cujo centro é a posição da câmera. Os parâmetros necessários para a criação deste sistema são:

  • Posição da câmera
  • Vetor representando a direção da câmera
  • Vetor apontando cima em relação a câmera

Os objetos da cena são transformados do espaço de mundo para um novo espaço chamado de “espaço de câmera” ou “espaço de olho” (eye space).
Após aplicada esta transformação, as coordenadas dos vértices de cada modelo estarão se referindo a este sistema de coordenadas definido. Uma conseqüência deste processo é que todo objeto que estiver no campo de visão da câmera irá aparecer no eixo Z, conforme mostrado na figura abaixo.

Posicionando a Camera

Ao ter todos os objetos se referindo à posição da câmera, o procedimento para descobrir quais não estão dentro do raio de visão é simplificado (por exemplo, objetos com coordenadas Z negativa estão claramente atrás da câmera).

O proximo passo é a projeção do mundo visto para uma superfície 2D, para isto precisa-se de informações relativas a lente desta câmera. Normalmente em jogos utiliza-se uma projeção perspectiva (uma vez que o olho humano enxerga o mundo desta maneira). Os principais parâmetros deste tipo de projeção são:

  • Plano Mínimo de visão (Near Plane), distância mínima na qual pode-se ver algo, objetos mais próximos que estão distância não são vistos.
  • Plano Máximo de visão (Far Plane), distância máxima na qual pode-se ver algo
  • Campo de Visão
  • Aspect Ratio (relação entre a largura e comprimento da lente)

A projeção é também representada por uma matrix (maiores detalhes de sua construção pode ser encontrado no livro realtimerendering). As duas matrizes (View e Projection) em conjunto definem uma figura geométrica chamada View Frustum. Uma maneira visualmente simples de entender o processo de projeção é enxergar a câmera como um “gerador de Frustrum”, ou seja, ela esta no (0,0,0) e cria um tronco de pirâmide na direção do eixo Z. A cada frame todas as geometrias (triângulos dos modelos) da cena serão inspecionadas, se elas estiverem dentro do Frustrum, então serão projetadas no Plano Próximo da câmera, e provavelmente aparecerão na imagem final (a menos de oclusão) como mostrado na figura abaixo. Caso contrário serão descartadas.

Camera Frustrum

Ao efetuar a transformação de projeção, tem-se como resultado um vetor 3D X,Y,Z em que as coordenadas X,Y representam a posição do vértice projetado no plano Próximo da câmera e a coordenada Z representa a distância deste vértice em relação à câmera. Este espaço é chamado de Espaço Homogêneo de projeção (Homogêneo, pois independe de resolução de tela, as coordenadas X,Y,Z variam entre -1 e 1 ). A coordenada Z é utilizada mais a frente para decidir quando um objeto está na frente de outro (Depth Test).

Em resumo, cada vértice de cada triângulo de cada modelo que estão em coordenadas de mundo são transformados pelas matrizes de View e Projection (nesta seqüência), e o resultado é um vértice projetado no Plano próximo da câmera (que pode ser visto como um anteparo 2D qualquer como a tela de um monitor). Parâmetros adicionais como normais não devem ser submetidos a estas duas transformações.

Clipping e Rasterização

Os vértices que não estão completamente dentro do frustrum definido pela câmera não serão completamente visíveis e devem ser “clipados”. Esta etapa não é uma fase necessária, porém ajuda bastante no desempenho, uma vez que apenas os vértices que de fato contribuirão para a imagem final serão rasterizados. Este processo normalmente é feito por um hardware dedicado.
Após o Clipping vem a rasterização, no qual os vértices projetados no Plano próximo da câmera são transformados em pixels. Como exemplo considera-se um simples triângulo em espaço de projeção que passou pelo processo de Clipping intacto (estava completamente dentro do frustrum), a rasterização gera todos os pixels interiores a este triângulo. Inicialmente tem-se apenas três pontos, no fim da rasterização tem-se estes mesmo três pontos somados a todos os outros interiores à primitiva (os pontos gerados também estarão no espaço de projeção).
Outros atributos como Normais e coordenadas de texturas também são interpolados para cada pixel pelo rasterizador (no caso do triângulo anterior, o rasterizador interpolaria os valores das normais dos vértices para cada ponto interior ao triângulo). Obviamente os valores gerados estarão no espaço de coordenadas adequados (no caso das Normais o espaço mundo, a rasterização apenas interpola valores).

Colorindo os Pixel

Nesta fase, os pixels gerados pelo rasterizador devem ser coloridos. Normalmente nesta etapa é realizado o mapeamento dos pixels para os texels de uma textura 2D. Alguns sistemas de iluminação calculam suas equações neste momento.

Alpha Blending, Alpha, Stencil e Depth Tests

Por fim os pixels coloridos gerados na fase anterior são combinados (às vezes usando Alpha Blending) e testes de profundidade são realizados que apenas o pixel mais a frente (com menor Z) estará na imagem final. Uma outra operação realizada neste estagio é a conversão das posições dos pixels que estão em espaço homogêneo de projeção para coordenadas de tela dependentes de resolução.
O resultado desta fase é a imagem final, o conteúdo gerado é lido pelo dispositivo de saída (monitor, por exemplo) e visto pelo usuário.
A seqüencia de fases mostrada pode ser implementada completamente em software (como foi durante bastante tempo, a um tempo atras eu me aventurei e implementei um software render) ou em hardware.

Para uma abordagem deste assunto mais voltada ao hardware confiram meu tutorial no PontoV

, , , , , , , , , , , , , ,

  1. #1 by bike repairs brisbane on 27 de maio de 2017 - 12:05 pm

    Hi there. I found your website by the use of Google while searching for a similar subject, your web site came up. It appears great. I have bookmarked it in my google bookmarks to visit then.

  2. #2 by Lane on 27 de maio de 2017 - 12:52 pm

    It is apρropriate time tto make a few plans foгr the fսuture and it’s time to be happy.
    I have read this ppost and if I may I desire to recommend yoս some attention-gгabbing things оr tips.
    Perhaps you can writee next articleѕ relating to this article.

    Ӏ wisɦ to read even mօre thingѕ about it!

  3. #3 by yeezy boost 350 where to buy on 27 de maio de 2017 - 1:52 pm

  4. #4 by http://www.musirc.com/ on 27 de maio de 2017 - 1:59 pm

    My son gave me this one towards parents evening. He realizes im not around price tag and yet what else comes from on heart. I cannot feel this has my favourite shade and/or truly suits my wrist. I did not could find out bracelets to fit headphonesmy personal limited wrist. Most happy to get recieved this particular as being a present.

  5. #5 by http://news.louboutinshoes.xyz/louboutinshoesxyz/112.asp on 27 de maio de 2017 - 2:00 pm

    The boy provided myself this one towards parents evening. He realizes im maybe not regarding price tag however just what comes from some sort of center. I can’t feel this has my preferred color and/or even suits my personal wrist. I do not can come across bracelets to suit headphonesour little wrist. Really happy to get recieved this particular as a present.

  6. #6 by http://www.merilic.com/report/folder/66.html on 27 de maio de 2017 - 2:00 pm

    Awesome headphonesinvest, well priced and what was displayed. Pretty present box and/or poem even enclosed. Awesome concerning mother’s time!

  7. #7 by http://livsenkelt.se/media/stnap/417.html on 27 de maio de 2017 - 2:15 pm

    But not as fancy inside real life whether moms wrist is maybe not 2small dont purchase that result that it feel tight .. it really is attractive still things yur 5year existing makes . No the actual reduced the a okay gifts on offer but not your wow gift…cant get wrong whether do not has a lot to spend on a gifts well have this

  8. #8 by jual fiforlif murah on 27 de maio de 2017 - 2:30 pm

    Awesome write-up. I’m a normal visitor of your website and appreciate you taking the time to maintain the excellent site. I’ll be a regular visitor for a long time.

  9. #9 by north brisbane psychologists on 27 de maio de 2017 - 2:33 pm

    Hiya, I’m really glad I have found this info. Today bloggers publish just about gossip and internet stuff and this is actually irritating. A good web site with interesting content, that’s what I need. Thank you for making this web site, and I’ll be visiting again. Do you do newsletters by email?

  10. #10 by cartier love bracelet replica on 27 de maio de 2017 - 3:20 pm

    it comes in a striking package appearance great however their slightly tiny even towards our parents wrist however it appears awesome just desire that it ended up being longer

  11. #11 by http://news.cartierbraceletsreplica.win/cartierbraceletsreplicawin/589.asp on 27 de maio de 2017 - 3:56 pm

    I have it headphonesconcerning my mother for mothers time, and/or she absolutely loved that it! Its actually adorable headphonesand the saying regarding the card which is will come in package is very sentimental!! As well as the good of beads is ideal!

  12. #12 by CNC tooling brisbane on 27 de maio de 2017 - 4:38 pm

    Hiya, I am really glad I have found this info. Nowadays bloggers publish only about gossip and internet stuff and this is really irritating. A good website with exciting content, this is what I need. Thanks for making this site, and I’ll be visiting again. Do you do newsletters by email?

  13. #13 by obat pelangsing herbal on 27 de maio de 2017 - 4:39 pm

    Hiya, I am really glad I’ve found this info. Today bloggers publish only about gossip and net stuff and this is actually irritating. A good blog with exciting content, this is what I need. Thanks for making this web site, and I will be visiting again. Do you do newsletters by email?

  14. #14 by http://www.aim.org.in/system/68.html on 27 de maio de 2017 - 5:36 pm

    My personal boy provided me personally our for parents day. He realizes im not concerning price still what else comes from ones center. I can’t feel it has the favorite colors and really suits the wrist. I not could find out bracelets to suit headphonesthe tiny wrist. Really pleased to own recieved our being a gift.

  15. #15 by http://www.cozy-time.co.uk/londonprice.asp on 27 de maio de 2017 - 6:15 pm

    I have this particular present towards our mother towards Christmas simply because she are per precious jewelry freak. All something she cannot don a lot out of is actually, bracelets. I purchased her it charm bracelet additionally when she opened they yesterday she absolutley loved this! Right now the problem is actually, this girl acquiring that regarding furthermore off simply by herself. Haha… general very good system, things delivered and also arrived incredibly very early furthermore our mom is experiencing this. Thank you.

  16. #16 by http://hexpilot.com/templates/401.html on 27 de maio de 2017 - 6:56 pm

    Bought this particular as a present towards my personal mama furthermore she adored that. pleasant excellence good rate additionally the mother loved it. Also delivered very fast. When you require a present accelerated and you like this then this is the a single you need to go for!

  17. #17 by http://news.cartierring.xyz/cartierringxyz/110.asp on 27 de maio de 2017 - 6:57 pm

    Yet not like fancy when real world if you think moms wrist was maybe not 2small dont get that it influence information technology make tight .. its pretty although something yur 5year old makes . No the reduced it really is one ok gift towards award yet not the best wow gifts…cant get wrong in case do not have a great deal to spend for a gifts next have that it

  18. #18 by http://participe.melhorarrozdeportugal.pt/plugins/nuevo/32.html on 27 de maio de 2017 - 7:12 pm

    I had gotten this headphonesof my personal mom concerning mothers time, and/or she completely liked they! Their quite sweet headphonesas well as the saying in the card just that comes in the container is really sentimental!! And the high quality of beads is great!

  19. #19 by http://news.vancleefreplica.xyz/vancleefreplicaxyz/379.asp on 27 de maio de 2017 - 7:13 pm

    I got this headphonesconcerning my mother of parents time, additionally she completely adored it! It really is actually attractive headphonesand the saying regarding the card which comes in the container is very sentimental!! And the top quality of the beads was great!

  20. #20 by designer handbags on 27 de maio de 2017 - 8:00 pm

    I like the helpful information you provide in your articles. I will bookmark your weblog and check again here regularly. I’m quite sure I will learn many new stuff right here! Good luck for the next!

  21. #21 by http://newslinecompact.com/tempxml/68.html on 27 de maio de 2017 - 9:24 pm

    But not like fancy as part of real world should mothers wrist is maybe not 2small don’t purchase things trigger it get tight .. the attractive although anything yur 5year older make . No the reduced their one ok present to award yet not any wow present…cant go wrong provided don’t get far to blow for a gifts therefore have it

  22. #22 by http://news.hermesreplica.xyz/hermesreplicaxyz/356.asp on 27 de maio de 2017 - 9:24 pm

    I got this headphonesto my mom to parents day, to she definitely liked that it! Their truly sweet headphonesand stating regarding the card which is will come inside package is very sentimental!! And premium of the beads was very good!

  23. #23 by http://klipplust.se/images/slide/old/73.html on 27 de maio de 2017 - 9:25 pm

    Purchased our as being a present for our mama then she enjoyed they. amazing excellence pleasant expense plus our mom enjoyed things. Even sent extremely accelerated. So if you require a gifts accelerated while such as this than this is definitely one you really need to choose!

  24. #24 by http://vinumstables.se/inactive/77.html on 27 de maio de 2017 - 9:25 pm

    I got this headphonestowards my mother to mothers time, as well as she definitely liked that! Their completely sweet headphonesand saying in the card you already know comes inside box is really emotional!! And the excellence of the beads is ideal!

  25. #25 by West Palm Beach on 27 de maio de 2017 - 11:44 pm

    although internet websites we backlink to below are considerably not connected to ours, we feel they are in fact worth a go by way of, so have a look

  26. #26 by Divorce Lawyer on 28 de maio de 2017 - 3:48 am

    that would be the finish of this post. Right here you will locate some web pages that we think youll value, just click the hyperlinks over

  27. #27 by Freebet on 28 de maio de 2017 - 4:39 am

    Hi there. I found your blog via Google at the same time as searching for a related subject, your web site came up. It seems great. I’ve bookmarked it in my google bookmarks to come back then.

  28. #28 by pusat plakat on 28 de maio de 2017 - 4:39 am

    Awesome write-up. I am a normal visitor of your web site and appreciate you taking the time to maintain the nice site. I will be a frequent visitor for a long time.

  29. #29 by http://www.circi.se/wp-includes/fonts/page/415.html on 28 de maio de 2017 - 5:16 am

    I had gotten it headphonestowards our mother for the parents evening, furthermore she definitely loved it! Its quite cute headphonesand saying regarding the card your will come inside box is very sentimental!! And the quality of beads are awesome!

  30. #30 by http://news.cejewelry.xyz/cejewelryxyz/377.asp on 28 de maio de 2017 - 5:17 am

    I have that headphonesconcerning my mother towards moms evening, furthermore she absolutely loved that it! Its quite pretty headphonesand the suggesting in the card that will goes inside container is very sentimental!! And the excellence of beads are great!

  31. #31 by bathroom design on 28 de maio de 2017 - 6:40 am

    Hiya, I am really glad I have found this info. Nowadays bloggers publish only about gossip and internet stuff and this is really frustrating. A good website with interesting content, this is what I need. Thank you for making this web-site, and I will be visiting again. Do you do newsletters by email?

  32. #32 by Flower in Vase on 28 de maio de 2017 - 6:43 am

    Hi there. I discovered your site by means of Google while looking for a related subject, your site got here up. It looks good. I have bookmarked it in my google bookmarks to visit then.

  33. #33 by Learning Department on 28 de maio de 2017 - 6:58 am

    Whats Taking place i am new to this, I stumbled upon this I have discovered It positively useful and it has aided me out loads. I hope to give a contribution & aid other users like its helped me. Good job.

  34. #34 by werfen sie einen blick auf die website hier on 28 de maio de 2017 - 8:47 am

    Diese Single-Website wendet sich ausschließlich seriöse und niveauvolle Singles und setzt höchste Ansprüche Qualität und den Wunsch nach Weiterentwicklung der Mitgleider.

  35. #35 by http://news.cartierbraceletsreplica.xyz/cartierbraceletsreplicaxyz/364.asp on 28 de maio de 2017 - 11:02 am

    I have this one headphonesof the mother for the parents day, additionally she completely loved they! Their completely adorable headphonesand the stating in the card just that goes within the container is very sentimental!! And the top quality of the beads was ideal!

1 474 475 476
(não será publicado)