2010-10-17 10 views
6

Estoy intentando crear un juego en 3D usando OpenGL. Tengo un mundo muy básico y ahora estoy trabajando en un personaje. Quiero mapear una textura a la cabeza que será de forma ovalada. ¿Cómo hago el mapeo? Sé cómo mapear a una superficie plana. Me pregunto si las normales se pueden usar para ayudar, pero nunca he hecho esto antes y cuando busco Google no tengo suerte.¿Cómo se textura el mapa sobre una superficie curva?

estoy pensando en hacer todo esto mediante programación y no usar Blender o Maya si hay alguna diferencia.

Respuesta

1

Supongo por su publicación que está bien con la geometría?

Para el mapeo automático en el caso general, supongo que es una buena idea: comience desde cada vértice y siga su normal hacia afuera hasta llegar a una primitiva externa bien definida, luego copie la ubicación de la textura hacia adentro.

En este caso, creo que probablemente la clave está en cómo se genera la geometría. Si está haciendo algo así como crear 8 anillos de 16 puntos, efectivamente iterando alrededor de un círculo en un bucle externo y otro en un bucle interno, entonces puede iterar uyv simultáneamente para obtener un mapeo. Obtienes algunos polígonos de tamaño irregular y el mapeo se vuelve problemático en los polos, pero el área alrededor de la cara funcionaría bastante bien.

Si desea un tamaño de polígono más igual y un mapeo confiable en todas las áreas, comience con un cubo sobre teselado (por ejemplo, una cuadrícula de 8x8 quads por superficie en lugar de solo uno) y mapee las coordenadas de textura en cualquier de manera significativa. Piensa en términos de la red de un cubo. Luego, deforme el cubo en una esfera trabajando el vector desde el centro hacia cada punto y moviendo el punto de modo que sea el radio de la esfera desde el centro. Finalmente, deforme la esfera en el óvalo escalando diferentes ejes de forma diferente.

Cuestiones relacionadas