Armonicele sferice pot fi un lucru dificil pentru a va infasura capul. Chiar si odata ce teoriile de baza sunt intelese, exista unele lucrari de implementare surprinzator, ciudate, pentru a obtine functiile codificate corect. Acest lucru este valabil mai ales cand vine vorba de rotatii ale armonicelor sferice (o mare parte din literatura este densa in matematica si contine erori). In plus, diferite surse de literatura folosesc conventii usor diferite atunci cand definesc functiile de baza.
Aceasta biblioteca este o colectie de functii utile pentru lucrul cu armonice sferice. Nu este limitat la o functie de ordine maxima a bazei, utilizand definitii recursive atat pentru functiile de baza SH, cat si pentru matricile de rotatie SH. Aceasta biblioteca foloseste conventia de a include functia de faza Condon-Shortely ((-1) ^ m) in definitia functiei de baza.
Acesta nu este un proiect oficial Google.
Dependente
Aceasta biblioteca depinde de Eigen3 pentru primitivele sale algebra liniara. Culorile sunt reprezentate ca Eigen :: Array3f, unde componentele sunt ordonate rosu, verde si albastru. Testul Google este utilizat pentru testarea unitara.
Instrumentul de construire Bazel este utilizat pentru a construi biblioteca. Acesta este responsabil pentru descarcarea si configurarea Eigen3 si a cadrului de testare. Puteti construi biblioteca executand in directorul radacina:
Functii generale
Consultati documentatia din sh / spherical_harmonics.h pentru detalii despre functii specifice. sh / image.h ofera o interfata de imagine foarte generica si simpla, care poate fi utilizata pentru a adapta aceasta biblioteca cu orice set de instrumente de imagistica deja in uz.
Functii de baza SH
EvalSH – Evaluati functia de baza SH a gradului dat si a ordinii la pozitia furnizata pe o sfera unitara. Pozitia este descrisa fie ca vector de unitate, fie ca coordonate sferice.
EvalSHSum – Evaluati aproximarea unei functii sferice care a fost deja convertita intr-un vector al coeficientilor functiei de baza.
Functii de proiectie
Folosit pentru a estima coeficientii aplicati functiilor de baza pentru a aproxima functii sferice complexe ca o suma ponderata a functiilor bazei armonice sferice. Odata proiectate, coeficientii returnati pot fi transferati in EvalSHSum.
ProjectFunction – Proiectati o functie sferica analitica in fiecare functie de baza pana la ordinea specificata. Aceasta utilizeaza integrarea Monte Carlo pentru a estima coeficientul pentru fiecare functie de baza.
ProjectEnvironment – Proiectati o imagine a hartii de mediu aranjata intr-o proiectie latitudine-longitudine in functiile de baza pana la ordinea specificata. Aceasta este o specializare in ProjectFunction, care este mai eficienta atunci cand functia sferica este descrisa ca o imagine care contine un mediu.
ProjectSparseSamples – Proiectati o functie sferica care a fost evaluata doar rar (adica de 10-50 de ori). Spre deosebire de functia analitica, aceasta utilizeaza o potrivire a celor mai mici patrate pentru a estima cel mai bine coeficientii pentru fiecare functie de baza. Acest lucru functioneaza bine atunci cand se potriveste cu date fotografice, unde pot fi capturate atat de multe fotografii.
Functii de iradiere difuza
Iradianta difuza poate fi reprezentata eficient in armoniile sferice de ordin scazut. Poate fi calculat rapid prin estimarea lobului cosinus difuz standard ca vector al coeficientilor si a mediului ca armonici sferice. Iradianta difuza este pur si simplu produsul punct al celor doi vectori de coeficient.
RenderDiffuseIrradiance – Calculati iradianta difuza pentru un vector dat si coeficienti SH care descriu iluminarea mediului (adica din ProjectEnvironment).
videosgays tetonas delgadas
compilacion anal coños peludos rubios
viejas muy calientes comic maduras
insesto madurafollando
cinema gropers pornocolombianas
corridas anales casadas follando por dinero
filme porno vechi swingers españoles
monjas folladoras compartiendo novia
jovencita masturbandose hermanas tetonas
tias buenas desnudas lisbianas
hermanos jovenes follando brazzers videos completos
videos porno gay de españoles tetudas españolas
madura en la playa negros follando a blancas
travesti paja pilladas españolas follando
actores porno gay españoles peliculas x vintage
falsos casting porno metart films
porno rural abuelas y nietos xxx
mía kalifa mamadas retro
porno agresivo paginas sexo
travestis maduras tetonas cubanas
RenderDiffuseIrradianceMap – Calculati iradiere difuza pentru fiecare vector normal descris de textele imaginii latitudine-longitudine furnizate. Acest lucru poate fi util pentru calcularea unei harti de texturi de iradiere difuza si apoi pentru a o transfera pe GPU pentru redarea bazata pe shader.
Rotatii armonice sferice
Daca o functie sferica complexa este rotita si este necesar un set de coeficienti sferici armonici pentru aceasta noua functie, este posibil sa rotiti coeficientii sferici armonici ai aproximarii initiale, mai degraba decat sa reproiectati functia rotita. Acest lucru este adesea mult mai eficient si este utilizat in RenderDiffuseIrradiance pentru a transforma functia lobului cosinusului pentru axa z a unitatii in orice alt vector normal.
Rotatie – Tipul de obiect care calculeaza matricile de transformare care transforma in mod adecvat coeficientii armonici sferici, avand o rotatie cuaternara.
Functii utilitare
GetCoefficientCount – Returneaza numarul total de coeficienti necesari pentru a reprezenta toate functiile de baza pana la o comanda data.
GetIndex – Returneaza un index 1-dimensional (potrivit pentru accesarea vectorilor returnati din toate functiile proiectului) cu un grad si o ordine.
ToVector – Transformati coordonatele sferice intr-un vector unitate.
ToSphericalCoords – Transforma un vector unitate in coordonate sferice.
ImageXToPhi – Transformati coordonata x a unui pixel intr-o imagine cu o latime specifica in coordonata sferica phi.
ImageYToTheta – Transformati coordonata y a unui pixel intr-o imagine cu o inaltime specifica in coordonata sferica theta.
ToImageCoords – Transformati coordonatele sferice in coordonate de imagine in virgula mobila, avand in vedere dimensiunile particulare ale imaginii. Coordonatele pot fi folosite pentru a interpola biliniar o harta de mediu sau pentru a le arunca la numere intregi pentru a accesa pixeli directi.
Literatura Functiile armonice sferice generale si metodele de montare sunt din [1], functiile legate de harta mediului se bazeaza pe metodele din [2] si [3], iar rotatiile armonice sferice sunt din [4] si [5]:
- R. Green, „Iluminarea sferica armonica: detaliile sangeroase”, GDC 2003, http://www.research.scea.com/gdc2003/spherical-harmonic-lighting.pdf
- R. Ramamoorthi si P. Hanrahan, „O reprezentare eficienta pentru hartile mediului de iradiere” ,. , P., SIGGRAPH 2001, 497-500
- R. Ramamoorthi si P. Hanrahan, „Despre relatia dintre stralucire si iradiere: determinarea iluminarii din imaginile unui obiect lambertian convex”, J. Optical Soc. A.m. A, vol. 18, nr. 10, pp. 2448-2459, 2001.
- J. Ivanic si K. Ruedenberg, “Matrici de rotatie pentru armonici sferice reale. Determinarea directa prin recursivitate”, J. Phys. Chem., Vol. 100, nr. 15, pp. 6342-6347, 1996. http://pubs.acs.org/doi/pdf/10.1021/jp953350u
- Corectii la [4]: http://pubs.acs.org/doi/pdf/10.1021/jp9833350








