пятница, 23 июня 2017 г.

EDXRay. hairball.obj и hdri освещение

нашёлся мне EDXRay - bidirectional path tracer, path tracer, multiplexed mlt с поддержкой disney brdf(по этой фразе его и нашёл), загружает obj, можно загрузить и повращать hdr.

после чтения исходников удивительной находкой оказалось, что используется код smallVCM, на основе которого я писал свой рендер.
в рендере также есть:
  • фильтры изображения MitchellNetravali, gaussian, box(без фильтрации)
  • adaptive sampling - галочка есть, а самого адаптив семплинга в коде нет
  • загрузка environment map(картинка для hdri освещения) интерактивно, в самой программе - в форматах JPEG, PNG, TGA, PSD, GIF, BMP, HDR, PIC, PNM, PPM, PGM. допишу еще pfm
  • сохраняет только в самописный BMP
  • RandomSampler, SobolSampler, Metropolis(фактически его нет, вызывается RandomSampler, сделано наверное для Multiplexed MLT - metropolis там единственный семплер)
  • StochasticPPM - не реализован - вызывается BidirPathTracingIntegrator😹
  • Camera Models

    • Thin Lens Model
    • Fisheye Camera
    • Realistic Camera Parameters
    • Arbitrarily Shaped Bokeh
    • Vignette and Cateye effect
  • Light Source

    • Point Light
    • Directional Light
    • Polygonal Area Light
    • Procedural Sky Light with Hosek Model
    • HDR Probe
  • Integrators

    • Volumetric Path Tracing - как его вызвать, я не понял. надо читать исходник Media/Homogeneous.cpp - похоже используется в phaseFunction HenyeyGreenstein
    • Bidirectional Path Tracing with Multiple Importance Sampling
    • Multiplexed Metroplis Light Transport
  • Materials

    • Lambertion Diffuse
    • Smooth Conductor
    • Smooth Dielectric
    • Rough Conductor
    • Rough Dielectric
    • Disney BRDF
      • Layered Material with Up to 2 Specular Coats
      • Cloth
    • Subsurface Scattering
      • BSSRDF based on Normalized Diffusion
      • Participating Media
    • Normal Map
    • Roughness Map
    • Alpha Test
отлично сделан рендер. я автору написал "thanks for HUGE rework of smallVCM code"
я писал свои модификации к оригинальному smallVCM, но в некоторых моментах я замечал, что сложно добавлять новые штуки. остановил разработку, смотрел как бы мне сделать более универсальный каркас. и перепробовал много исходников и оказывается, что автор EDXRay уже порезал и замиксовал на новый лад исходники smallVCM. сам алгоритм vcm в рендере не реализован. я допишу🐼
также я планирую:
  • загрузку obj с помощью tinyobjloader
  • nanort для пересечения с треугольниками, сферами, curves, cones. сейчас поддерживается Embree для пересечения с треугольниками. сферы превращаются в треугольники
  • загрузка сцен в форматах ini, xml, rib, всех форматах, поддерживаемых assimp
  • реализовать материалы из obj, mtl, поддержка disney brdf из mtl

Комментариев нет:

Отправить комментарий