Fritask (discussão | contribs)
Fritask (discussão | contribs)
Linha 107: Linha 107:


= Informações adicionais =
= Informações adicionais =
Descrever detalhes a mais sobre esse tema.
A renderização pode ser dividia em duas categorias principais: renderização em tempo real (conhecido como renderização online) e pré-renderização (conhecido como renderização offline). A renderização em tempo real é usada para renderizar de forma interativa com uma cena, como em jogos 3D, e geralmente cada quadro deve ser renderizado em poucos milissegundos. A renderização offline é usada para criar imagens e filmes realistas, onde cada quadro pode levar horas ou dias para serem finalizados.
<br>
<br>



Edição das 19h51min de 26 de setembro de 2017

Conceito

Programação em renderização é o processo de geração de uma imagem a partir de um modelo por meio de um software. No contexto da renderização gráfica, a programação em renderização refere-se a um processo de renderização que não depende dos ASICs de hardware gráfico, como uma placa gráfica. A renderização ocorre inteiramente na CPU. Renderizar tudo com a CPU tem a principal vantagem de não se restringir às capacidades do hardware gráfico.

A renderização é usada na arquitetura, jogos e filmes. Renderizar é o último passo em um processo de animação, e dá a aparência final aos modelos e animação com efeitos visuais como sombreamento, mapeamento de texturas, sombras, reflexos e borrões de movimento.

Softwares

Alguns softwares que são usados para esta finalidade são: OpenGL e DirectX. Alguns dos softwares que usam a programação em renderização são: 3ds Max, Maya, CINEMA 4D, Blender, Adobe Photoshop, Gimp, Corel, entre outros. E algumas das linguagens de programação mais usadas para tal processo são: C, C++, C#, Haskell, JavaScript. Descrever os softwares usados para esta finalidade. Detalhar, se existir, linguagens, banco de dados e frameworks.

Código

void

RenderFrame (int n, const struct mdl_model_t *mdl) {

int i, j;

GLfloat s, t;

vec3_t v;

struct mdl_vertex_t *pvert;

/* Verifica se n está em um alcance válido */

if ((n < 0) || (n > mdl->header.num_frames - 1))

return;

/* Ativa as texturas dos modelos */

glBindTexture (GL_TEXTURE_2D, mdl->tex_id[mdl->iskin]);

/* Desenha o Modelo */

glBegin (GL_TRIANGLES);

/* Desenha cada Triângulo */

for (i = 0; i < mdl->header.num_tris; ++i) {

/* Desenha cada vértice */

for (j = 0; j < 3; ++j) {

pvert = &mdl->frames[n].frame.verts[mdl->triangles[i].vertex[j]];

/* Calcula as coordenadas da textura */

s = (GLfloat)mdl->texcoords[mdl->triangles[i].vertex[j]].s;

t = (GLfloat)mdl->texcoords[mdl->triangles[i].vertex[j]].t;

if (!mdl->triangles[i].facesfront && mdl->texcoords[mdl->triangles[i].vertex[j]].onseam) {

s += mdl->header.skinwidth * 0.5f; /* Face Traseira */

}

/* Escalas S e T variam de 0.0 a 1.0 */

s = (s + 0.5) / mdl->header.skinwidth;

t = (t + 0.5) / mdl->header.skinheight;

/* Passa as coordenadas de textura para OpenGL */

glTexCoord2f (s, t);

/* Vetor Normal */

glNormal3fv (anorms_table[pvert->normalIndex]);

/* Calcula a posição do vértice real */

v[0] = (mdl->header.scale[0] * pvert->v[0]) + mdl->header.translate[0];

v[1] = (mdl->header.scale[1] * pvert->v[1]) + mdl->header.translate[1];

v[2] = (mdl->header.scale[2] * pvert->v[2]) + mdl->header.translate[2];

glVertex3fv (v);

}

}

glEnd ();

}


Diagrama de Casos de Uso


Interações com as tecnologias

Conceito de Realidade Aumentada e Programação de Games, ambos utilizam a programação em renderização para realizar a renderização em tempo real ou renderização offline.

Informações adicionais

A renderização pode ser dividia em duas categorias principais: renderização em tempo real (conhecido como renderização online) e pré-renderização (conhecido como renderização offline). A renderização em tempo real é usada para renderizar de forma interativa com uma cena, como em jogos 3D, e geralmente cada quadro deve ser renderizado em poucos milissegundos. A renderização offline é usada para criar imagens e filmes realistas, onde cada quadro pode levar horas ou dias para serem finalizados.

Referências bibliográficas

Relacionar aqui as referências bibliográficas no padrão ABNT. 
Bases de procura: Artigos, publicações acadêmicas, revistas e sites de fornecedores