He estado atrapado en cómo abordar esto por un tiempo, por lo que agradecería cualquier sugerencia.
Quiero mapear una textura en forma de un triángulo euclidiano inferior derecho a un triángulo hiperbólico en el disco Poincare.
Aquí está la textura (el triángulo superior izquierdo de la textura es transparente y no se usa). Puede reconocer esto como parte del Límite I del círculo de Escher
Lo siento, mira el comentario ya que parece que no puedo publicar más de dos enlaces.
Y así es como se ve mi polígono (está centrado en el origen, lo que significa que dos bordes son líneas rectas, sin embargo, en general, los tres bordes serán arcos circulares):
El centro del polígono es el incentivo del triángulo euclidiano formado por sus vértices y estoy mapeando la textura con UV usando su incentivo, dividiéndolo en la misma cantidad de caras que tiene el polígono y mapeando cada cara en la cara del polígono correspondiente. Sin embargo, el resultado se ve así:
Si alguien piensa que esto se puede resolver con el mapeo UV, me complacería proporcionar un código de ejemplo, sin embargo, estoy empezando a pensar que esto podría no ser posible y tendré que escribir mis propias funciones de mapeo.
RESUELTO con un poco de refinamiento de la respuesta de @ Nathan a continuación, ya que las líneas AB, AC, BC en realidad pueden ser arcos, no líneas.
Método: elige el lado más largo, por ejemplo BC, luego subdivide esto en un número par de partes. Subdivida los otros dos lados en la misma cantidad de partes. Entonces, las líneas que conectan estos (DE en la respuesta a continuación) también deben ser arcos, no líneas rectas. Subdivida estos nuevos arcos según sea necesario, agregue los nuevos triángulos como caras y luego asigne en UV el triángulo inferior derecho de la textura a estas nuevas caras.