Obecnie studiuję oświetlenie w OpenGL, które wykorzystuje funkcję GLSL zwaną normalize. Według dokumentów OpenGL mówi, że "oblicza znormalizowany iloczyn dwóch wektorów". Jednak nadal nie wyjaśnia, co oznacza "znormalizowany". Próbowałem sprawdzić, jaki znormalizowany produkt jest w Google, ale nie mogę niczego na ten temat znaleźć. Czy ktoś może wyjaśnić, co oznacza normalizacja i podać kilka przykładów znormalizowanej wartości?Co to znaczy znormalizować wartość?
Odpowiedz
Jest to termin matematyczny i this link wyjaśnia jego znaczenie w dość prosty sposób:
Operacje w 2D i 3D grafiki komputerowej są często wykonywane przy użyciu kopii wektorów, które zostały znormalizowane IE. przekształca się wektor jednostkowy ... Normalizacja wektor składa się z dwóch etapów:
- obliczyć jego długość, a następnie,
- podziału każdego z jego (
xy
lubxyz
) Składniki przez jego długości ...
Myślę, że zamieszanie pochodzi z idei normalizacji "wartości" w przeciwieństwie do "wektora"; jeśli uważasz, że jedna wartość jest wartością, normalizacja nie ma sensu. Normalizacja jest użyteczna tylko wtedy, gdy zostanie zastosowana do wektora.
Wektor to ciąg cyfr; w grafice 3D jest to zwykle współrzędna wyrażona jako v = <x,y,z>
.
Każdy wektor posiada wielkości lub długość, które można znaleźć za pomocą twierdzenia Pythagora za: |v| = sqrt(x^2 + y^2 + z^2)
Jest to w zasadzie długość linii od punktu początkowego do punktu <0,0,0>
wyrażona przez wektor.
Wektor to normalny, jeśli ma długość 1. To wszystko!
Aby znormalizować wektor, należy go zmienić tak, aby wskazywał kierunek w tym samym kierunku (myśl o tej linii od początku), ale jego długość wynosi jeden.
Głównym powodem, dla którego używamy normalnych wektorów, jest przedstawienie kierunku; na przykład, jeśli modelujesz źródło światła w nieskończonej odległości, nie możesz podać dokładnych współrzędnych dla niego. Ale możesz wskazać, gdzie można go znaleźć z określonego punktu za pomocą normalnego wektora.
Normalizacja rzeczywiście ma sens dla pojedynczej wartości. Tak właśnie działa znak (x). – Jessy
@Jessy Wystarczająco fair, ale jest o wiele mniej interesujący/mylący niż przypadek 3-wektorowy. – benzado
Prawdopodobnie. Myślę, że to pomaga zrozumieć tę koncepcję. Na przykład, myślę, że warto sobie wyobrazić przyjęcie produktu kropki znormalizowanego wektora "n> 1" i "znormalizowanego 1-wektorowego". Możesz sobie wyobrazić, jak wkłady innych wymiarów nie wpływają na kąt między wektorami. Obowiązuje tylko wymiar pasujący do wektora 1-wektorowego. – Jessy
- 1. (! 0) Co to znaczy
- 2. Co to znaczy ("../")?
- 3. Java: Co to znaczy ~
- 4. java.lang.IllegalStateException co to znaczy?
- 5. Co to znaczy "->"?
- 6. Co to znaczy WS- *?
- 7. Co to jest Serializable? Co to znaczy?
- 8. Co to znaczy "budować" program?
- 9. MVC4 - ContextDependentView - co to znaczy?
- 10. „##” w printk, co to znaczy ##
- 11. MySQL 1443: co to znaczy?
- 12. Co to znaczy "zamurować" projekt?
- 13. HashMap.this.clear() co to znaczy, jak to działa
- 14. Shellcode w C - Co to znaczy?
- 15. Co to znaczy być zgodnym z NSCoding?
- 16. Co to jest POI i co to znaczy?
- 17. Co to | 5E | znaczy w Common Lisp?
- 18. Co to znaczy @var w komentarzach php
- 19. Co to znaczy/64 w IPv6
- 20. Co to znaczy, że typ jest "pudełkowy"?
- 21. Co to znaczy "sfinalizować" w Julii?
- 22. Co to znaczy: [alternatives --config mta]?
- 23. Co to znaczy # (? - mix: facebook | twitter)?
- 24. Co to znaczy mieć wiele kolumn sortkey?
- 25. Co to znaczy: "document.write ('<scr' + 'ipt ..."?
- 26. Status zadania WaitingForActivation - co to znaczy?
- 27. xn-- na domenie, co to znaczy?
- 28. ":" (dwukropek) w strukturze C - co to znaczy?
- 29. Co to znaczy udekorować klasę lub parametr?
- 30. Co to znaczy "zatruć funkcję" w C++?
gdzie to znalazłeś? W specyfikacji glsl jest: normalize (genType x) - Zwraca wektor w tym samym kierunku co x, ale o długości 1. http://www.opengl.org/registry/doc/GLSLangSpec.Full.1.20.8 .pdf – fen
Tutaj, myślę, że to była pierwsza rzecz, która pojawiła się, gdy googlełem. http://www.opengl.org/sdk/docs/manglsl/xhtml/normalize.xml – TheAmateurProgrammer
dziwne ... ale w opisie jest odpowiednia informacja. – fen