Forums » 3D Game Builder

Tutorial 20 – Oficial – Utilizando Shaders no 3D Game Builder

    • 466 posts
    19 de setembro de 2012 20:59:33 ART

    TUTORIAL 20 - UTILIZANDO SHADERS NO 3D GAME BUILDER

     

            Este tutorial tem como objetivo mostrar como utilizar os recursos de shaders do 3D Game Builder para criar materiais e texturas realistas.

            Shader são conjuntos de instruções de software que são utilizados principalmente para calcular e renderizar efeitos no hardware gráfico, com os shader é possível programar diretamente para a unidade de processamento gráfico (GPU).

            Os shaders são divididos em dois tipos:

    Pixel Shader - Shader utilizado para trabalhar na estrutura dos pixels depois que os objetos são rasterizados. Com o pixel shader podemos criar efeitos nas imagens, como efeitos de vidro, rugosidade, desfoque e etc. Além disso, também permitem a criação de texturas procedurais.

    Vertex Shader - Shader utilizado para trabalhar na estrutura de vértices dos objetos 3D, podendo modificar a sua estrutura em tempo de execução. É utilizado para otimização dos objetos 3D, pois a partir da programação conseguimos detalhes ou efeitos que seriam muito árduos para serem criados durante a modelagem. Por exemplo modelar as ondas de um oceano além de ser difícil conseguir um resultado bom, alterá-lo dinamicamente para o mar não ficar estático é muito trabalhoso, um vertex shader é capaz de fazer isso com poucas linhas de código.

            O 3D Game Builder possui 6 shaders pré definidos:

    - Diffuse Specular Shader

    - Cel Shading

    - Bump Mapping

    - Toon Shading

    - Gooch Light

    - Environment Mapping

            A seguir serão apresentados mais detalhes sobre os shaders pré definidos.

            O Diffuse Specular Shader é utilizado para simular iluminação mais realista nos objetos. As propriedades do Diffuse Specular Shader são:

    - Enabled - Habilita/Desabilita o shader;

    - Realistic Specular - Habilita/Desabilita o uso do specular realista;

    - Specular Power - Define a intensidade do specular;

    - Light Power - Define a intensidade da luz;

            O resultado produzido pelo Diffuse Specular Shader é o seguinte:

            O Cel Shader permite criar contornos nos objetos 3D, em conjunto com texturas simples pode ser utilizado de modo que o resultado final se assemelhe ao de desenhos em 2D. As propriedades do Cel Shader são:

    - Enabled - Habilita/Desabilita o shader;

    - OutLines - Habilita/Desabilita os contornos desenhados no objeto;

    - Textured - Habilita/Desabilita a textura do objeto;

    - BuildShadeTexture - Habilita/Desabilita o shader como textura;

    - OutLineWidth - Define o tamanho da linha dos contornos do objeto;

    - OutLineColor - Define a cor das linhas do contorno criadas pelo shader no objeto;

            O resultado produzido pelo Cel Shader é o seguinte:

            O Bump Mapping Shader é utilizado para simular superfícies realistas utilizando texturas. As propriedades do Bump Mapping Shader são:

    - Enabled - Habilita/Desabilita o shader.

    - Normal Map Texture - Define a textura que será utilizada como normal map para perturbar a iluminação da superfície.

            O resultado produzido pelo Bump Mapping Shader é o seguinte:

            O Toon Shader é semelhante ao Cel Shader porem não utiliza textura nos objetos. As propriedades do Toon Shader são:

    - Enabled - Habilita/Desabilita o shader.

    - Edge - Define o limite das bordas.

    - Phong - Define o limite para a cor phong.

    - Diffuse Color - Define a cor difusa do objeto.

    - Phong Color - Define a cor phong do objeto.

            O resultado produzido pelo Toon Shader é o seguinte:

            O Gooch Shader é utilizado para simular iluminações não foto realistas. As propriedades do Gooch Shader são:

    - Enabled - Habilita/Desabilita o shader.

    - DiffuseWarm - Define o limite da cor warm (quente) do objeto.

    - DiffuseCool - Define o limite da cor cool (fria) do objeto.

    - Surface Color - Define a cor da superficie do objeto.

    - Warm Color - Define a cor warm (quente) do objeto.

    - Cool Color - Define a cor cool (fria) do objeto.

            O resultado produzido pelo Gooch Shader é o seguinte:

            O Environment Mapping Shader é utilizado para simular reflexões nos objetos. As propriedades do Environment Mapping Shader são:

    - Enabled - Habilita/Desabilita o shader.

    - Environment Map Texture - Define a textura que seja utilizada para o environment map.

    - MixRatio - Define a o valor para interpolação linear.

    - Base Color - Define a cor base do do objeto.

            O resultado produzido pelo Environment Mapping Shader é o seguinte:

            Além dos shaders pré definidos o 3D Game Builder também oferece a possibilidade de o usuário programar os seus próprios shaders através da opção Custom Shader. A linguagem utilizada para a criação dos shaders é a linguagem GLSL, mais informações sobre a linguagem pode ser encontrada no seguinte link: http://www.opengl.org/documentation/glsl/

            Após a criação de um shader pré definido ou a programação um novo shader ele já poderá ser associado aos materiais utilizados nos objetos. Para isso acesso o banco de dados de materiais (Banco de Dados -> Materiais).

            Todo material possui a opção "Material Shader" e nela duas sub opções: o "Shader Type" que referece ao tipo shader (Diffuse Specular Shader, Cel Shading, Bump Mapping, Toon Shading, Gooch Light, Environment Mapping ou Custom Shader) e a segunda sub opção é a definição de qual shader será utilizado. Por exemplo, se criarmos um novo shader do tipo "Gooch Shader" no banco de dados de Gooch Shaders (Banco de Dados ->Shaders -> Gooch Shader) ao selecionarmos o tipo de shader "Gooch Shader" no material o shader que criamos será listado e poderemos selecioná-lo para aplicá-lo no material.

            Após selecionar um shader será possível visualizá-lo na janela de materiais. Salvando o material em que o shader foi associado é possível aplicá-lo normalmente em qualquer objeto do cenário.

            A maioria dos shaders dependem de uma fonte de luz, lembre-se de sempre adicionar um fonte de luz no cenário, caso contrario o shader não irá funcionar corretamente.

     

     

    Créditos: Retirado do Site Oficial: http://www.3dgamebuilder.com.br

    • 33 posts
    18 de janeiro de 2019 04:48:20 ART

    Obrigado por suas instruções. muito detalhado e específico, muito útil para mim.

    happy wheels