Illumination Model
განათების მოდელირება არის ერთ-ერთი უმთავრესი ნაწილი კომპიუტერულ გრაფიკაში. ამოცანის არსი მდგომარეობს იმაში რომ შევქმნათ რეალობასთან მეტ-ნაკლებად მიახლოებული მოდელი, რომელიც ახასიათებს განათებას. არსებობს განათების სხვადასხვა მოდელები.
განათება შეიძლება აღვწეროთ 3 ძირითადი მახასიათებლით:
- გარე განათება (Ambient Light) - განათების ის მინიმალური ოდენობა რომელიც ყოველთვის არსებობს სცენაში (ასეთ განათებას არ გააჩნია მიმართულება).
- გაბნეული განათება (Diffuse Light) - განათება რომელიც მოდის გამომსხივებლიდან და ნაწილდება სცენაში არსებულ ობიექტებზე (მათ ზედაპირზე).
- არეკლილი განათება (Specular Light) - განათება რომელიც ირეკლება სცენაში არსებული ობიექტების ზედაპირზე.
სურათზე ნაჩვენებია გეომეტრიოლი მოდელი რომელიც მოცემული განათების ძირითადი მახასიათებლებით. მარცხნიდან მარჯვნივ პირველ 3 სურათზე ნაჩვენებია მოდელი შესაბამისად გარე(Ambient), გაბნეული(Diffuse) და არეკლილი(Specular) განათების მახასიათებლებით, ხოლო მეოთხე სურთზე სამივე კომპონენტის საშუალებით. ადვილი მისახვედრია რომ საბოლოო განათება მიიღება თითოეული კომპონენტის შეჯამებით.
განვიხილოთ თიტოეული კომპონენტის გამოთვლის წესი:
გარე განათების(ambient light) გამოთვლა არ ხდება, როგორც ზემოთ ითქვა მას არ გააჩნია კონკრეტული მიმართულება, ის უბრალოდ ასახავს განათების მინიმალურ ოდენობას სცენაში.
გაბნეული განათება ითვლება განათების მიმართულებისა(L) და ობიექტის ზედაპირის მიმართულებას(N) შორის არსებული ალფა კუთხის საფუძველზე. თუ კუთხე არის 0-თან ახლოს მაშინ განათება არის მაქსიმალური, ალფა კუთხის ზრდა იწვევს გაბნეული განათების მახასიათებლის შემცირებას. როდესაც ალფა არის 90 გრადუსი განათების მაჩვენებელი არის 0-ის ტოლი. შეგვიძლია სიმარტივისათვის ვთქვათ რომ კუთხის მიმართება განათების მაჩვენებელთან არის წრფივი, თუმცა ხშირ შემთხვევაში განათების მოდელები მათ მიმართებას ახასიათებენ კოსინუს ფუნქციით. საბოლოოდ ვიღებთ, რომ Idiffuse = max( cos(a), 0 );
არეკლილი განათების გამოთვლა ხდება იმ კუთხის საფუძველზე, რომელსაც ადგენს არეკლილი სხივი დამკვირვებლის მიმართულებასთან. ისევე როგორც გაბნეული განათების შემთხვევაში, როდესაც კუთხე 0-ის ტოლია განათების მაჩვენებელი მაქსიმალურია, როდესაც კუთხე იზრდება განათების მაჩვენებელი კლებულობს. აქ უკვე შემოდის კიდევ ერთი მაჩვენებელი რომელიც ახასიათებს არეკლილ განათებას, ეს არის სიკაშკაშე(shininess). სიკაშკაშე განაპირობებს თუ კუთხის რა დიაპაზონში მოქმედებს არეკლილი განათება. საბოლოოდ ვიღებთ, რომ Ispecular = pow( max( cos( y ), 0 ), shininess );
Comments
Post a Comment