Сглаживание

Взгляните еще раз на последнее изображение:

objects.png

Если присмотреться, то вы увидите, что края объектов не гладкие -- на них есть ступеньки и зазубрины. Этот эффект называется алиасингом (aliasing). Удаление алиасинга называют анти-алиасингом (antialiasing) или сглаживанием . Вы можете указать POV-Ray-ю выполнить сглаживание, указав в командной строке параметр +an , где n -- число в диапазоне от 0 (полное сглаживание, выполняется медленно) до 1 (сглаживания нет, зато работает быстро). Если вы не укажите значение, то по умолчанию будет установлено n=0.3. А мы зададим следующее:

povray +itest +w320 +h240 +a0.1

и получим:

objects2.png

Вот, так гораздо лучше.

Комментарии

Пока наша сцена очень проста, но со временем она станет сложнее и код уже не будет таким ясным. Потребуются комментарии, чтобы понять (или вспомнить) что в нем к чему.

Комментарии в POV-Ray делаются также как в C++. Вы можете добавить блок комментариев:

/* Это длинный-
предлинный
комментарий */

или однострочный комментарий:

// Это строка комментария
This is code  // а тут стоит комментарий

Попробуем сделать наш код более читабельным при помощи комментариев:

/*--------------------------------------------------------------------------
      Моя сцена в POV-Ray: сфера, бокс, конус, цилиндр и плоскость.
--------------------------------------------------------------------------*/
#include "colors.inc" // включаем файл с определениями цветов

// --------------- Камера ------------------------
camera
{ location <0,10,-20>  // Камера находится здесь
  look_at <0,0,0>      // и смотрит сюда
  angle 35             // с углом зрения
}

// -------------- Источники света -----------------
light_source { <10,20,-20> color White }
light_source { <-200,0,0> color Red }

// ---------------- Объекты -----------------------
sphere                 // сфера
{ <0,0,0>,2
  pigment { color Yellow }
}
box                    // бокс
{ <-2.5,-2,-2>,<-6.5,2,2>
  pigment { color Blue }
}
cone                   // конус
{ <4.5,-2,0>,2,<4.5,2,0>,0
  pigment { color Cyan }
}
cylinder               // цилиндр
{ <0,-2,4.5>,<0,2,4.5>,2
  pigment { color Brown }
}
plane                  // подложка
{ y,-2
  pigment { color White }
}

INI-файл

Чтобы не писать каждый раз настройки в командной строке, поместим их в отдельный текстовый файл -- my.ini. Настройки можно записывать точно так же, как в командной строке, но можно делать это и в более читабельном виде:

; My ini-file 
Width=320
Height=240
Antialias=On
Antialias_Threshold=0.1

Комментарии в INI-файле начинаются с ;

Теперь командная строка будет выглядеть так:

povray +itest my.ini


Комментарии

comments powered by Disqus