Explicação passo a passo: criar uma bola de bilhar realista em 3DWalkthrough: Create a realistic 3D billiard ball

Este passo a passo demonstra como criar uma bola de bilhar realista em 3D usando o Designer de Sombreador e o Editor de Imagens no Visual Studio.This walkthrough demonstrates how to create a realistic 3D billiard ball by using the Shader Designer and Image Editor in Visual Studio. A aparência 3D da bola de bilhar é obtida pela combinação de várias técnicas de sombreador com recursos de textura adequados.The 3D appearance of the billiard ball is achieved by combining several shader techniques with appropriate texture resources.

Pré-requisitosPrerequisites

Você precisa dos seguintes componentes e habilidades para concluir este passo a passo:You need the following components and skills to complete this walkthrough:

  • Uma ferramenta para criar texturas em um mapa de cubo, como a ferramenta de textura do DirectX que está incluída no SDK do DirectX de junho de 2010.A tool for assembling textures into a cube map, such as the DirectX Texture Tool that is included in the June 2010 DirectX SDK.

  • Familiaridade com o Editor de Imagens no Visual Studio.Familiarity with the Image Editor in Visual Studio.

  • Familiaridade com o Designer de Sombreador no Visual Studio.Familiarity with the Shader Designer in Visual Studio.

Criar a aparência básica com forma e texturaCreate the basic appearance with shape and texture

Em gráficos de computador, os elementos mais básicos de aparência são forma e cor.In computer graphics, the most-basic elements of appearance are shape and color. Em uma simulação de computador, é comum usar um modelo 3D para representar a forma de um objeto real.In a computer simulation, it is common to use a 3D model to represent the shape of a real-world object. O detalhe de cor é, então, aplicado para a superfície do modelo usando um mapa de textura.Color detail is then applied to the surface of the model by using a texture map.

Você talvez precise solicitar a criação de um modelo 3D que possa usar, mas como uma bola de bilhar é uma forma comum (uma esfera), o Designer de Sombreador já tem um modelo adequado criado.Typically, you might have to ask an artist to create a 3D model that you can use, but because a billiard ball is a common shape (a sphere), the Shader Designer already has a suitable model built in.

A esfera é a forma de visualização padrão no Designer de Sombreador. Se você estiver usando uma forma diferente para visualizar seu sombreador, mude para a esfera.The sphere is the default preview shape in the Shader Designer; if you are currently using a different shape to preview your shader, switch back to the sphere.

Para visualizar o sombreador usando uma esferaTo preview the shader by using a sphere

  • Na barra de ferramentas do Designer de Sombreador, escolha Visualização com esfera.On the Shader Designer toolbar, choose Preview with sphere.

    Na próxima etapa, você criará um programa sombreador que aplica uma textura ao modelo, mas primeiro você precisa criar uma textura que possa usar.In the next step, you'll create a shader program that applies a texture to the model, but first you have to create a texture that you can use. Este passo a passo demonstra como criar a textura usando o Editor de Imagens, que é uma parte do Visual Studio, mas você pode usar qualquer editor de imagens que possa salvar a textura em um formato adequado.This walkthrough demonstrates how to create the texture by using the Image Editor, which is a part of Visual Studio, but you can use any image editor that can save the texture in a suitable format.

    Verifique se a janela Propriedades e a Caixa de Ferramentas estão sendo exibidas.Make sure that the Properties window and the Toolbox are displayed.

Como criar uma textura de bola de bilhar usando o Editor de ImagensTo create a billiard ball texture by using the Image Editor

  1. Crie uma textura com a qual trabalhar.Create a texture to work with. Para obter informações sobre como adicionar uma textura em seu projeto, consulte a seção de Introdução em Editor de Imagens.For information about how to add a texture to your project, see the Getting Started section in Image Editor.

  2. Defina o tamanho da imagem para que sua largura seja duas vezes sua altura. Isso é necessário devido à maneira em que uma textura é mapeada na superfície esférica da bola de bilhar.Set the image size so that its width is twice its height; this is necessary because of the way that a texture is mapped onto the spherical surface of the billiard ball. Para redimensionar a imagem, na janela Propriedades, especifique novos valores para as propriedades Largura e Altura.To resize the image, in the Properties window, specify new values for the Width and Height properties. Por exemplo, defina a largura para 512 e a altura para 256.For example, set the width to 512 and the height to 256.

  3. Desenhe uma textura para a bola de bilhar, tendo em mente como uma textura é mapeada em uma esfera.Draw a texture for the billiard ball, keeping in mind how a texture is mapped onto a sphere.

    A textura deverá ser parecida com esta:The texture should look similar to this:

    Textura para a bola de bilhar

  4. Opcionalmente, você talvez queira diminuir os requisitos de armazenamento dessa textura.Optionally, you might want to decrease the storage requirements of this texture. Você pode fazer isso reduzindo a largura da textura para corresponder a sua altura.You can do that by reducing the width of the texture to match its height. Isso compacta a textura ao longo de sua largura, mas devido à maneira que a textura é mapeada para a esfera, ela será expandida quando a bola de bilhar for renderizada.This compresses the texture along its width, but due to the way that the texture is mapped to the sphere, it will be expanded when the billiard ball is rendered. Após o redimensionamento, a textura deverá ser parecida com esta:After resizing, the texture should look similar to this:

    Textura de bilhar compactada em um quadrado

    Agora, você pode criar um sombreador que aplica essa textura ao modelo.Now, you can create a shader that applies this texture to the model.

Para criar um sombreador de textura básicoTo create a basic texture shader

  1. Crie um sombreador DGSL com o qual trabalhar.Create a DGSL shader with which to work. Para obter informações sobre como adicionar um sombreador DGSL ao seu projeto, consulte a seção de Introdução em Designer de Sombreador.For information about how to add a DGSL shader to your project, see the Getting Started section in Shader Designer.

    Por padrão, um grafo de sombreador tem esta aparência:By default, a shader graph looks like this:

    O grafo de sombreador padrão

  2. Modifique o sombreador padrão para que ele seja aplicado ao valor de uma amostra de textura ao pixel atual.Modify the default shader so that it applies the value of a texture sample to the current pixel. O gráfico de sombreador deve ter esta aparência:The shader graph should look like this:

    Um grafo sombreador que aplica textura a um objeto

  3. Aplique a textura que você criou no procedimento anterior ao configurar as propriedades de textura.Apply the texture that you created in the previous procedure by configuring the texture properties. Defina o valor da propriedade Textura do nó Amostra de Textura em Texture1 e, em seguida, especifique o arquivo de textura usando a propriedade Filename do grupo de propriedades Texture1 na mesma janela de propriedade.Set the value of the Texture property of the Texture Sample node to Texture1, and then specify the texture file by using the Filename property of the Texture1 property group in the same property window.

    Para obter mais informações sobre como aplicar uma textura no sombreador, confira Como criar um sombreador de textura básica.For more information about how to apply a texture in your shader, see How to: Create a basic texture shader.

    Sua bola de bilhar agora deve ser semelhante a esta:Your billiard ball should now look similar to this:

    Uma vista de perto da bola de bilhar texturizada

Criar profundidade com o modelo de iluminação LambertCreate depth with the Lambert lighting model

Até agora, você criou uma bola de bilhar facilmente reconhecível.So far, you've created an easily recognizable billiard ball. No entanto, ela é plana e desinteressante — mais como uma imagem de desenho de uma bola de bilhar do que uma réplica convincente.However, it appears flat and uninteresting—more like a cartoon picture of a billiard ball than a convincing replica. A aparência plana é resultado do sombreador simplista, que se comporta como se cada pixel na superfície da bola de bilhar recebesse a mesma quantidade de luz.The flat appearance results from the simplistic shader, which behaves as if each pixel on the surface of the billiard ball receives the same amount of light.

No mundo real, a luz é mais brilhante em superfícies com uma fonte de luz direta e é menos brilhante em superfícies que estão em um ângulo oblíquo em relação à fonte de luz.In the real world, light appears brightest on surfaces that directly face a light source and appears less bright on surfaces that are at an oblique angle to the light source. Isso ocorre porque a energia nos raios de luz é distribuída entre a área de superfície menor quando a superfície tem fonte de luz direta.This is because the energy in the light rays is distributed across the smallest surface area when the surface directly faces the light source. À medida que a superfície fica longe da fonte de luz, a mesma quantidade de energia é distribuída em uma área de superfície maior.As the surface turns away from the light source, the same amount of energy is distributed across an increasingly larger surface area. Uma superfície que fica longe de uma fonte de luz não recebe nenhuma luz, resultando em uma aparência totalmente escura.A surface that faces away from a light source receives no light energy at all, resulting in a completely dark appearance. Essa variação no brilho na superfície de um objeto é uma dica visual importante que ajuda a indicar a forma de um objeto. Sem ela, o objeto fica plano.This variance in brightness across the surface of an object is an important visual cue that helps indicate the shape of an object; without it, the object appears flat.

Em gráficos de computador, modelos de iluminação — aproximações simplificadas de interações de luz complexas e reais — são usados para replicar a aparência de iluminação do mundo real.In computer graphics, lighting models—simplified approximations of complex, real-world lighting interactions—are used to replicate the appearance of real-world lighting. O modelo de iluminação Lambert varia a quantidade de luz refletida difusamente na superfície de um objeto, conforme descrito no parágrafo anterior.The Lambert lighting model varies the amount of diffusely reflected light across the surface of an object as described in the previous paragraph. Você pode adicionar o modelo de iluminação Lambert em seu sombreador para dar à bola de bilhar uma aparência 3D mais convincente.You can add the Lambert lighting model to your shader to give the billiard ball a more convincing 3D appearance.

Como adicionar iluminação Lambert ao seu sombreadorTo add Lambert lighting to your shader

  • Modifique seu sombreador para variar o valor da amostra de textura pelo valor de iluminação Lambert.Modify your shader to modulate the value of the texture sample by the Lambert lighting value. Seu gráfico de sombreador deve ter esta aparência:Your shader graph should look like this:

    O grafo de sombreador com iluminação Lambert adicionada

  • Opcionalmente, você pode ajustar o comportamento da iluminação configurando a propriedade MaterialDiffuse do gráfico do sombreador.Optionally, you can adjust how the lighting behaves by configuring the MaterialDiffuse property of the shader graph. Para acessar as propriedades do gráfico do sombreador, escolha uma área vazia da superfície de design e, em seguida, localize a propriedade que você deseja acessar na janela Propriedades.To access properties of the shader graph, choose an empty area of the design surface, and then locate the property that you want to access in the Properties window.

    Para obter mais informações sobre como aplicar a iluminação Lambert no sombreador, confira Como criar um sombreador Lambert básico.For more information about how to apply Lambert lighting in your shader, see How to: Create a basic Lambert shader.

    Com a iluminação Lambert aplicada, a bola de bilhar deve ser semelhante a esta:With Lambert lighting applied, your billiard ball should look similar to this:

    Uma vista de perto da bola de bilhar acesa e texturizada

Aprimorar a aparência básica com realces especularesEnhance the basic appearance with specular highlights

O modelo de iluminação Lambert fornece o senso de forma e dimensão que estava ausente no sombreador somente textura.The Lambert lighting model provides the sense of shape and dimension that was absent in the texture-only shader. No entanto, a bola de bilhar ainda tem uma aparência um pouco fosca.However, the billiard ball still has a somewhat dull appearance.

Uma bola de bilhar real normalmente tem um acetinado que reflete uma parte da luz contida nela.A real billiard ball usually has a glossy finish that reflects a portion of the light that falls on it. Um pouco da luz refletida resulta em realces especulares, que simulam as propriedades de reflexão de uma superfície.Some of this reflected light results in specular highlights, which simulate the reflecting properties of a surface. Dependendo das propriedades de acabamento, os realces podem ser localizados ou amplos, intensos ou sutis.Depending on the properties of the finish, the highlights can be localized or broad, intense or subtle. Esses reflexos especulares são modelados usando a relação entre uma fonte de luz, a orientação da superfície e a posição da câmera — ou seja, o realce é mais intenso quando a orientação da superfície reflete a fonte de luz diretamente na câmera e é menos intenso quando a reflexão é menos direta.These specular reflections are modeled by using the relationship between a light source, the orientation of the surface, and the camera position—that is, the highlight is most intense when the orientation of the surface reflects the light source directly into the camera, and is less intense when the reflection is less direct.

O modelo de iluminação Phong se baseia no modelo de iluminação Lambert para incluir realces especulares, conforme descrito no parágrafo anterior.The Phong lighting model builds on the Lambert lighting model to include specular highlights as described in the previous paragraph. Você pode adicionar o modelo de iluminação Phong ao seu sombreador para dar à bola de bilhar um acabamento simulado que resulta em uma aparência mais interessante.You can add the Phong lighting model to your shader to give the billiard ball a simulated finish that results in a more interesting appearance.

Como adicionar realces especulares ao seu sombreadorTo add specular highlights to your shader

  1. Modifique seu sombreador para incluir a contribuição especular usando combinação aditiva.Modify your shader to include the specular contribution by using additive blending. Seu gráfico de sombreador deve ter esta aparência:Your shader graph should look like this:

    O grafo de sombreador com iluminação especular adicionada

  2. Opcionalmente, você pode ajustar a maneira que o realce especular se comporta ao configurar as propriedades especulares (MaterialSpecular e MaterialSpecularPower) do gráfico do sombreador.Optionally, you can adjust the way that the specular highlight behaves by configuring the specular properties (MaterialSpecular and MaterialSpecularPower) of the shader graph. Para acessar as propriedades do gráfico do sombreador, escolha uma área vazia da superfície de design e, em seguida, localize a propriedade que você deseja acessar na janela Propriedades.To access properties of the shader graph, choose an empty area of the design surface, and then in the Properties window, locate the property that you want to access.

    Para obter mais informações sobre como aplicar realces especulares no sombreador, confira Como criar um sombreador Phong básico.For more information about how to apply specular highlights in your shader, see How to: Create a basic Phong shader.

    Com a iluminação especular aplicada, sua bola de bilhar deve ser semelhante a esta:With specular highlighting applied, your billiard ball should look similar to this:

    Uma vista de perto da bola de bilhar com especular adicionado

Criar um senso de espaço ao refletir o ambienteCreate a sense of space by reflecting the environment

Com os realces especulares aplicados, a bola de bilhar parece muito convincente.With specular highlights applied, your billiard ball looks pretty convincing. Ela tem a forma, o trabalho de pintura e o acabamento corretos.It's got the right shape, the right paint job, and the right finish. No entanto, ainda há uma técnica que fará com que a bola de bilhar pareça fazer parte de seu ambiente.However, there's still one more technique that will make your billiard ball look more like a part of its environment.

Se examinar de perto uma bola de bilhar real, você poderá ver que sua superfície brilhante não exibe apenas realces especulares, mas também reflete, de modo esmaecido, uma imagem do mundo em torno dele.If you examine a real billiard ball closely, you can see that its glossy surface doesn't just exhibit specular highlights but also faintly reflects an image of the world around it. Você pode simular essa reflexão usando uma imagem do ambiente como uma textura e combiná-la com a textura do modelo para determinar a cor final de cada pixel.You can simulate this reflection by using an image of the environment as a texture and combining it with the model's own texture to determine the final color of each pixel. Dependendo do tipo de acabamento que desejar, você pode combinar mais ou menos da reflexão de textura junto com o restante do sombreador.Depending on the kind of finish you want, you can combine more or less of the reflection texture together with the rest of the shader. Por exemplo, um sombreador que simula uma superfície altamente refletiva, como um espelho, pode usar somente a textura de reflexão, mas um sombreador que simula um reflexo mais sutil, como o de uma bola de bilhar, pode combinar apenas uma pequena parte do valor da textura de reflexão junto com o restante do cálculo do sombreador.For example, a shader that simulates a highly reflective surface like a mirror might use only the reflection texture, but a shader that simulates a more subtle reflection like the one found on a billiard ball might combine just a small portion of the reflection texture's value together with the rest of the shader calculation.

Obviamente, você não pode aplicar apenas a imagem refletida no modelo da mesma maneira que aplica o mapa de textura do modelo.Of course, you can't just apply the reflected image to the model in the same way that you apply the model's texture map. Se fez isso, a reflexão do mundo será movida com a bola de bilhar como se estivesse colada a ela.If you did, the reflection of the world would move with the billiard ball as if the reflection were glued to it. Como um reflexo pode vir de qualquer direção, você precisa de uma maneira para fornecer um valor de mapa de reflexão para qualquer ângulo e uma maneira de manter o mapa de reflexão orientado de acordo com o mundo.Because a reflection can come from any direction, you need a way to provide a reflection map value for any angle, and a way to keep the reflection map oriented according to the world. Para atender a esses requisitos, você pode usar um tipo especial de mapa de textura — chamado de mapa de cubo — que fornece seis texturas organizadas para formar os lados de um cubo.To satisfy these requirements you can use a special kind of texture map—called a cube map—that provides six textures arranged to form the sides of a cube. De dentro desse cubo, você pode apontar em qualquer direção para localizar um valor de textura.From inside this cube, you can point in any direction to find a texture value. Se as texturas em cada lado do cubo contiverem imagens do ambiente, você poderá simular qualquer reflexão ao fazer a amostragem do local correto na superfície do cubo.If the textures on each side of the cube contain images of the environment, you can simulate any reflection by sampling the correct location on the surface of the cube. Ao manter o cubo alinhado com o mundo, você obterá um reflexo preciso do ambiente.By keeping the cube aligned to the world, you'll get an accurate reflection of the environment. Para determinar onde o cubo deve ser amostrado, calcule a reflexão do vetor da câmera na superfície do objeto e, em seguida, use-o como coordenadas de textura 3D.To determine where the cube should be sampled, you just calculate the reflection of the camera vector off the surface of the object, and then use it as 3D texture coordinates. Usar mapas de cubo dessa forma é uma técnica comum que é conhecida como mapeamento de ambiente.Using cube maps in this way is a common technique that's known as environment mapping.

O mapeamento de ambiente fornece uma aproximação eficiente de reflexos reais conforme descrito nos parágrafos anteriores.Environment mapping provides an efficient approximation of real reflections as described in the preceding paragraphs. Você pode misturar os reflexos mapeados de ambiente em seu sombreador para dar à bola de bilhar um acabamento simulado que faz com que a bola de bilhar pareça mais conectada com a cena.You can blend environment-mapped reflections into your shader to give the billiard ball a simulated finish that makes the billiard ball seem more grounded in the scene.

A primeira etapa é criar uma textura de mapa de cubo.The first step is to create a cube map texture. Em muitos tipos de aplicativos, o conteúdo do mapa de cubo não precisa ser perfeito para ser eficaz, especialmente quando a reflexão for sutil ou não ocupar um espaço de destaque na tela.In many kinds of apps, the contents of the cube map don't have to be perfect to be effective, especially when the reflection is subtle or doesn't occupy a prominent space on the screen. Por exemplo, muitos jogos usam mapas de cubo pré-calculados de mapeamento de ambiente e usam apenas o mais próximo de cada objeto reflexivo, embora isso signifique que a reflexão não está correta.For example, many games use pre-computed cube maps for environment mapping and just use the one nearest to each reflective object, although this means that the reflection isn't correct. Até mesmo uma aproximação grosseira geralmente é boa o bastante para um efeito convincente.Even a rough approximation is often good enough for a convincing effect.

Como criar texturas para um mapa de ambiente usando o Editor de ImagensTo create textures for an environment map by using the Image Editor

  1. Crie uma textura com a qual trabalhar.Create a texture to work with. Para obter informações sobre como adicionar uma textura em seu projeto, consulte a seção de Introdução em Editor de Imagens.For information about how to add a texture to your project, see the Getting Started section in Image Editor.

  2. Defina o tamanho da imagem para que a largura seja igual à altura e o lateral tenha um valor ao quadrado. Isso é necessário devido à maneira que um mapa de cubo é indexado.Set the image size so that its width is equal to its height, and is a power of two in size; this is necessary because of the way that a cube map is indexed. Para redimensionar a imagem, na janela Propriedades, especifique novos valores para as propriedades Largura e Altura.To resize the image, in the Properties window, specify new values for the Width and Height properties. Por exemplo, defina o valor das propriedades Largura e Altura como 256.For example, set the value of the Width and Height properties to 256.

  3. Use uma cor sólida para preencher a textura.Use a solid color to fill the texture. Este textura será a parte inferior do mapa de cubo, que corresponde à superfície da tabela de bilhar.This texture will be the bottom of the cube map, which corresponds to the surface of the billiard table. Mantenha a cor usada em mente para a próxima textura.Keep the color you used in mind for the next texture.

  4. Crie uma segunda textura com o mesmo tamanho que a primeira.Create a second texture that is the same size as the first. Essa textura será repetida nos quatro lados do mapa de cubo, que correspondem à superfície e aos lados de uma tabela de bilhar e à área ao redor da tabela de bilhar.This texture will be repeated on the four sides of the cube map, which correspond to the surface and sides of a billiard table, and to the area around the billiard table. Certifique-se de desenhar a superfície da tabela de bilhar nessa textura usando a mesma cor que na textura inferior.Make sure to draw the surface of the billiard table in this texture by using the same color as in the bottom texture. A textura deverá ser parecida com esta:The texture should look similar to this:

    A textura dos lados do cubemap

    Lembre-se de que um mapa de reflexão não precisa ser realista para ser eficaz. Por exemplo, o mapa de cubo usado para criar as imagens neste artigo contém apenas quatro cavidades em vez de seis.Remember that a reflection map doesn't have to be photorealistic to be effective; for example, the cube map used to create the images in this article contains just four pockets instead of six.

  5. Crie uma terceira textura com o mesmo tamanho que as outras.Create a third texture that is the same size as the others. Este textura será a parte superior do mapa de cubo, que corresponde à superfície da tabela de bilhar.This texture will be the top of the cube map, which corresponds to the ceiling above the billiard table. Para tornar essa parte da reflexão mais interessante, você pode desenhar uma luz acima para reforçar os realces especulares que você adicionou ao sombreador no procedimento anterior.To make this part of the reflection more interesting, you can draw an overhead light to reinforce the specular highlights that you added to the shader in the previous procedure. A textura deverá ser parecida com esta:The texture should look similar to this:

    A textura da parte superior do cubemap

    Agora que você criou texturas individuais para os lados do mapa de cubo, use uma ferramenta para agrupá-las em um mapa de cubo que pode ser armazenado em uma única textura .dds.Now that you have created individual textures for the sides of the cube map, you can use a tool to assemble them into a cube map that can be stored in a single .dds texture. Você pode usar qualquer programa que deseja que crie o mapa de cubo contanto que ele possa salvar o mapa de cubo no formato de textura .dds.You can use any program you want to create the cube map as long as it can save the cube map in the .dds texture format. Este passo a passo demonstra como criar a textura usando a Ferramenta de Textura do DirectX, que faz parte do SDK do DirectX de junho de 2010.This walkthrough demonstrates how to create the texture by using the DirectX Texture Tool that's a part of the June, 2010 DirectX SDK.

Como montar um mapa de cubo usando a ferramenta de textura do DirectXTo assemble a cube map by using the DirectX Texture Tool

  1. Na Ferramenta de Textura do DirectX, no menu principal, escolha Arquivo > Nova Textura.In the DirectX Texture Tool, on the main menu, choose File > New Texture. A caixa de diálogo Nova Textura é exibida.The New Texture dialog box appears.

  2. No grupo Tipo de Textura, escolha Textura do Mapa de Cubo.In the Texture Type group, choose Cubemap Texture.

  3. No grupo Dimensões, digite o valor correto para a Largura e a Alturae, em seguida, escolha OK.In the Dimensions group, enter the correct value for the Width and Height, and then choose OK. Um novo documento de textura é exibido.A new texture document appears. Por padrão, a textura mostrada pela primeira vez no documento de textura corresponde à face do cubo X positivo.By default, the texture first shown in the texture document corresponds to the Positive X cube face.

  4. Carregue a textura que você criou para o lado do cubo de textura na face do cubo.Load the texture that you created for the side of the texture cube onto the cube face. No menu principal, escolha Arquivo > Abrir na Face deste Mapa de Cubo, selecione a textura que você criou para o lado do cubo e, em seguida, escolha Abrir.On the main menu, choose File > Open Onto This Cubemap Face, select the texture that you created for the side of the cube, and then choose Open.

  5. Repita a etapa 4 para as faces do cubo X negativo, Z positivo e Z negativo.Repeat step 4 for the Negative X, Positive Z, and Negative Z cube faces. Para fazer isso, você deve exibir a face que deseja carregar.To do so, you must view the face that you want to load. Para exibir uma face de mapa de cubo diferente, no menu principal, escolha Exibir > Face do Mapa de Cubo e, em seguida, selecione a face que deseja exibir.To view a different cube map face, on the main menu, choose View > Cube Map Face, and then select the face that you want to view.

  6. Para a face do cubo Y positivo, carregue a textura que você criou na parte de cima do cubo de textura.For the Positive Y cube face, load the texture that you created for the top of the texture cube.

  7. Para a face do cubo Y negativo, carregue a textura que você criou na parte de baixo do cubo de textura.For the Negative Y cube face, load the texture that you created for the bottom of the texture cube.

  8. Salve a textura.Save the texture.

    Você pode imaginar o layout do mapa de cubo como este:You can imagine the layout of the cube map like this:

    Layout do mapa de cubo do ambiente

    A imagem na parte superior é a face do cubo Y positivo (+Y); no meio, da esquerda para a direita, é -X, +Z, +X e -Z; na parte inferior, é -Y.The image at the top is the positive Y (+Y) cube face; in the middle, from left to right, is the -X, +Z, +X, and -Z cube faces; at the bottom is the -Y cube face.

    Agora você pode modificar o sombreador para mesclar o exemplo de mapa de cubo para o restante do sombreador.Now you can modify the shader to blend the cube map sample into the rest of the shader.

Como adicionar o mapeamento de ambiente ao sombreadorTo add environment mapping to your shader

  1. Modifique seu sombreador para incluir a contribuição do mapeamento de ambiente usando combinação aditiva.Modify your shader to include the environment mapping contribution by using additive blending. Seu gráfico de sombreador deve ter esta aparência:Your shader graph should look like this:

    Uma vista de perto dos dois tipos de nós do sombreador reflexivo

    Observe que você pode usar um nó de Adição Múltipla nó para simplificar o gráfico do sombreador.Note that you can use a Multiply-Add node to simplify the shader graph.

    Aqui está uma visão mais detalhada dos nós do sombreador que implementam o mapeamento de ambiente:Here's a more detailed view of the shader nodes that implement environment mapping:

    O grafo de sombreador com o mapeamento de ambiente adicionado

  2. Aplique a textura que você criou no procedimento anterior ao configurar as propriedades de textura do mapa de cubo.Apply the texture that you created in the previous procedure by configuring the texture properties of the cube map. Defina o valor da propriedade Textura do nó Amostra do Mapa de Cubo em Texture2 e, em seguida, especifique o arquivo de textura usando a propriedade Filename do grupo de propriedades Texture2.Set the value of the Texture property of the Cubemap Sample node to Texture2, and then specify the texture file by using the Filename property of the Texture2 property group.

  3. Opcionalmente, você pode ajustar a reflexibilidade da bola de bilhar ao configurar a propriedade Saída do nó Constante.Optionally, you can adjust the reflectivity of the billiard ball by configuring the Output property of the Constant node. Para acessar as propriedades do nó, selecione-o na janela Propriedades e localize a propriedade que você deseja acessar.To access properties of the node, select it and then in the Properties window, locate the property that you want to access.

    Com o mapeamento de ambiente aplicado, a bola de bilhar deve ser semelhante a esta:With environment mapping applied, your billiard ball should look similar to this:

    Uma vista de perto da bola de bilhar de ambiente mapeada

    Nesta imagem final, observe como os efeitos que você adicionou se unem para criar uma bola de bilhar muito convincente.In this final image, notice how the effects that you added come together to create a very convincing billiard ball. A forma, a textura e a iluminação criam a aparência básica de um objeto 3D e os realces especulares e os reflexos tornam a bola de bilhar mais interessante e fazem com que ela pareça fazer parte do ambiente.The shape, texture, and lighting create the basic appearance of a 3D object, and the specular highlights and reflections make the billiard ball more interesting and look like a part of its environment.

Consulte tambémSee also