Friday, October 18, 2013

бөмбөрцөг болон декартын координатын систем

Бөмбөрцөг координатын систем 
Вектор болон цэгүүдийг декартын координатын системд 3-н ширхэг координатын утгуудыг ашиглан дүрсэлдэг, тэгвэл эдгээрийг бас бөмбөрцөгөн координатын системд тодорхойлж болдог.
Энэ координатын системд векторын байрлал, чиглэл болон уртыг хоёр ширхэг өнцөгийн утга болон цацрагийн урт (r) ашиглан дүрсэлдэг. (үүнд ө болон ф харгалзан тета болон фи гэж дуудагдана)
ө өнцөгийг туйлын өнцөг гэх ба бөмбөрцгийн оройн цэгт бэхлэгдсэн чиглэлээр баримжаа авч хэмжигддэг. Оройн цэгийн чиглэл нь y тэнхлэг юм.


Тэгвэл бөмбөрцөг координатын системийн хэрэглээ ач тус нь юу вэ?
Декартын координатын 3-н ширхэг утгыг бөмбөрцөгийн координатын хоёр ширхэг утга болгон цөөлдөг(ө болон ф)
Компютер графикт бөмбөрцөг дээрхи байрлалыг тодорхойлохын тулд векторыг голчлон хэрэглэдэг, ийм үед декартын координатын утгууд ашиглахын оронд өнцөгийн утгууд хэрэглэх нь хамаагүй үр ашигтай. Жишээлбэл векторыг босоо болон хөндлөн тэнхлэгээр эргүүлэх хэрэг гарлаа гэж бодоё, энэ үед харгалзах өнцөгийн утгыг тодорхой алхамаар нь нэмэгдүүлэхэд л хангалттай байдаг.
ө өнцөгийн авч болох радиан утгын завсар нь 0-оос Pi хүртэл,
ф өнцөгийн авч болох радиан утгын завсар нь 0-оос 2*Pi хүртэл байна.

for (int i=0; i<numSteps; ++i) {
    float theta = i/float(numSteps-1)*M_PI;
    for (int j=0; j<numSteps; ++j) {
        float phi = j/float(numSteps-1)*2*M_PI;
        // тета боло фи өнцөгүүдээ ашиглан ямар нэгэн тооцооллоо энд хийх боломжтой.
        ...
    }
}

графикийн shading тооцоололд гэрлийн гадаргуу дээр ойх болон тусах шинж чанартай холбоотойгоор бөмбөрцөг болон хагас бөмбөрцөгийн шинж чанарууд чухал үүрэг оролцоотой байдаг. BRDF ч юм уу тиймэрхүү тооцоололд гадаргуу дээр ирэх гэрлийн чиглэл, цааш ойгоод камерлүү чиглэн очих гэрлийг чиглэлүүдийг декартын системд тэмдэглэж ашигласнаас бөмбөрцөг координатаар авч ашиглах нь хамаагүй илүү үр ашигтай байдаг. Үр ашиг нь гэвэл декартад тэмдэглэж ашиглах байсан 6-н ширхэг утгуудыг 4 болгож цөөлөн ашиглаж байна, бид зөвхөн бөмбөрцөг координатын системийг ойлгоход л хангалттай юм.

Шаардлага гарвал энэ хоёр координатын систем хооронд хөрвүүлэлт хийхэд тун хялбар. Энд y тэнхлэгийг дээшээ харсан байгаа гэж үзнэ.

Бөмбөрцөг координатаас декартруу шилжүүлье.
    x = r sin(ө) cos(ф)
    y = r cos(ө)
    z = r sin(ө) sin(ф)

Декартаас бөмбөрцөг координатруу шилжүүлье.
    r = sqrt(x*x + y*y + z*z)
    ө = arccos(y/r)
    ф = arctan(z/x)