info@arnoldrender.ru
  • Facebook
  • Google
  • Linked-in
  • Twitter
  • Vimeo
  • Youtube
Arnoldrender
  • Главная
  • Новости
  • Эксклюзивы
  • Галерея
  • Вики
  • Скачать
  • Software
  • Форум
  • Контакты

Форум

Добро пожаловать, гость 

Показать / спрятать

Добро пожаловать, гость! Для участия в форуме требуется регистрация.

Форум » Общие вопросы » Development » Отказаться от AiRefractRay()

Страниц: 1
Автор Тема: Отказаться от AiRefractRay()


гость
Новичок
Сообщения: 3
Отказаться от AiRefractRay()
 21/07/2016 15:59

Только начал изучать шейдера под арнольд...
Написал свою функцию для направления рефракта. Все работает как надо. Но после вызова AiRefractRay() вектор направления посчитанный ранее перетирается тем, что посчитал сам Арнольд.
Как это избежать? По сути мне от AiRefractRay() нужно только корректные ray.dDdx и ray.dDdy, а само направление уже есть.
Я конечно могу востановить значение тем, что было ранее(так и делаю сейчас). Но смущает, что Арнольд, по сути делает ненужные просчеты, считая направление заново. Что, собственно, хотелось бы избежать. Да и ray.dDdx и ray.dDdy он считает на основе своего направления, а не моего.

Пока мне видится только один вариант - высчитать самому ray.dDdx и ray.dDdy и польностью отказаться от AiRefractRay(). Но что конкретно это такое и как их считать?

Или может быть я что то не до понял и делаю все неправильно?

if(GTR_refraction_dir(&dir, &refracted, sg, n1, n2, NV, samples, roughness, tail))
{
    AiMakeRay(&ray, AI_RAY_REFRACTED, &sg->P, &dir, AI_BIG, sg);
    AiRefractRay(&ray, &sg->Nf, n1, n2, sg);  //call it just for correct ray.dDdx and ray.dDdy
    ray.dir = dir;  //restore GTR dir
    AiTrace(&ray, AiColor(sp.refraction_weight), &sample);
}

Спасибо.

Страниц: 1

Все права защищены 2013, логотип и торговая марка Arnold Renderer принадлежит компании SolidAngle. Логотип и торговая марка Maya принадлежит компании Autodesk. Логотип и торговая марка Houdini принадлежит компании Side Effects Software. Копирование любых печатных и визуальных материалов, размещенных на сайте без ссылки на сайт arnoldrender.ru запрещены. Дизайн и разработка: BrainyLab