Сообщение от Mr_F_
это оффлайн рендер.
Игорь, кстати насчёт АО - чет туплю, как не в скринспейсе делают?) откуда лучи полусферой пускают? чуть_поодаль_от точки, на которую рассчитывается свет? вроде так не покатит
|
Ну допустим в Per Vertex,пускают из каждого вертекса луч,если есть лайтмеп то из каждой точки.
Направление луча вычисляется так(в цикле типа for( int i=0;i< samples;i++ )):
vec3 dir;
do{
dir = vec3( -1.0f + (float)genrand_real12()*2.0f , -1.0f + (float)genrand_real12()*2.0f , -1.0f + (float)genrand_real12()*2.0f );
}while( !(dir.length() <= 1.0f) );
dir.normalize();
float d = dot(hit.normal, dir);
if (d < 0)
{
dir = dir - d * 2.0f;
dir = dir % hit.normal;
}