|
Puede desahecerse del artefacto luminosos aplicando double_illuminate
al objeto en cuestión. Cuando una superficie es doblemente iluminada,
no importa dónde apunte su normal -siempre estará iluminada sin tomar
en cuenta de qué lado está la fuente luminosa. Por supuesto que no
debería importar que el objeto está ahora iluminado desde ambos lados.
Si esto es un problema, entonces no es tan fácil la solución.
Nótese que en el ejemplo dado al comienzo de esta sección la
solución no funciona: Iluminaría el triángulo completo con ambas
fuentes de luz! Sin embargo, esta solución trabaja bien en mallas de
triángulos cerradas, donde el lado interno de la malla se ensombrece
por la misma malla. Sin embargo, si está usando no_shadow
en el objeto (por ejemplo para librarse de artefactos de líneas de sombra),
nuevos problemas pueden aparecer en la iluminación (tales como partes
brillantes en lugares donde no debería haber ninguno; todos son
causados por este mismo problema).
El patrón de pendiente es más problemático y no hay una solución genérica que trabaje en todos los casos. Afortunadamente el uso más común del patrón de pendiente está en los campos de altura, y allí es posible una solución:
Si está teniendo este problema en un campo de altura suavizado, la solución es la de invertir el color_map (o cualquier mapa que esté usando) alrededor de 0.5. De esta manera no importa si la normal es revertida. Esto es, si usted tenía algo como esto en un campo de altura :
slope y color_map
{ [0.50 rgb <.5,.5,.5>] // rock
[0.75 rgb <.8,.4,.1>] // ground
[1.00 rgb <.4,1,.4>] // grass
}
simplemente tiene que invertir simetricamente el mapa alrededor de 0.5, ie. añada los valores desde 0 a 0.5 en orden reverso:
slope y color_map
{ [0.00 rgb <.4,1,.4>] // grass
[0.25 rgb <.8,.4,.1>] // ground
[0.50 rgb <.5,.5,.5>] // rock
[0.75 rgb <.8,.4,.1>] // ground
[1.00 rgb <.4,1,.4>] // grass
}
Aparte de esto usted debería, por supuesto, aplicar double_illuminate
al campo de altura con el fin de obtener la iluminación apropiada.
|