„Számítógépes grafika házi feladat tutorial” változatai közötti eltérés
| 792. sor: | 792. sor: | ||
static const Vector env_color; | static const Vector env_color; | ||
Scene() : obj_num(0) { } | Scene() : obj_num(0) { } | ||
Intersection getClosestIntersection(Ray r) const { | |||
Intersection closest_intersection; | Intersection closest_intersection; | ||
float closest_intersection_dist; | float closest_intersection_dist; | ||
| 813. sor: | 811. sor: | ||
} | } | ||
} | } | ||
return closest_intersection; | |||
} | } | ||
} | } | ||
| 825. sor: | 818. sor: | ||
* Ha ennél gyorsabb algoritmusra van szükséged, akkor ajánlom egy BSP-fa implementálását, mármint konkrétan egy KD-fát csinálj, ne általános BSP-t. Ez nagyon gyors, és nem nehéz implementálni... csak meg kell írni... | * Ha ennél gyorsabb algoritmusra van szükséged, akkor ajánlom egy BSP-fa implementálását, mármint konkrétan egy KD-fát csinálj, ne általános BSP-t. Ez nagyon gyors, és nem nehéz implementálni... csak meg kell írni... | ||
* Ami a kódból is látszódik, hogy még nem vagyunk készen, amikor meghatároztuk a legközelebbi metszéspontot, ugyanis nekünk egy színre van szükségünk, amit megjeleníthetünk, nem egy helyvektorra. | * Ami a kódból is látszódik, hogy még nem vagyunk készen, amikor meghatároztuk a legközelebbi metszéspontot, ugyanis nekünk egy színre van szükségünk, amit megjeleníthetünk, nem egy helyvektorra. | ||
=== Megvilágítás === | === Megvilágítás === | ||
| 842. sor: | 834. sor: | ||
struct Light { | struct Light { | ||
enum LightType {Ambient, Directional} type; | enum LightType {Ambient, Directional} type; | ||
Vector pos; | Vector pos, dir; | ||
Color color; | Color color; | ||
}; | }; | ||
| 866. sor: | 858. sor: | ||
} break; | } break; | ||
case Light::Directional: { | case Light::Directional: { | ||
float intensity = max(dot(inter.normal, light. | float intensity = max(dot(inter.normal, light.dir.normalize()), 0.0f); | ||
accum_color += intensity * light.color * own_color; | accum_color += intensity * light.color * own_color; | ||
} break; | } break; | ||
| 879. sor: | 871. sor: | ||
</syntaxhighlight> <br/> | </syntaxhighlight> <br/> | ||
Az eddigi elmélet összerakva egy programmá: [http://pastebin.com/ | Az eddigi elmélet összerakva egy programmá: [http://pastebin.com/rjk1YMCD Kocka-tracer] | ||
<br/> | <br/> | ||
Az eredménye, összehasonlítva azzal, amit az OpenGL tud, ugyan olyan beállítások mellett: | Az eredménye, összehasonlítva azzal, amit az OpenGL tud, ugyan olyan beállítások mellett: | ||