OpenGL을 사용하여 오브젝트를 배치하는 방법을 이해할 수 없습니다. 모든 변환 값은 "-1.0f"- "1.0f"사이에 있습니다. 나는 surfaceview를 사용하여 게임을 만들었습니다. 그리고 단순히 객체 x와 y의 위치를 변경하고 정의 할 수 있습니다. 예; 안드로이드 화면 너비가 480 픽셀이라면 내 박스 최대 x 값은 480입니다.하지만 OpenGL에서 어떻게 할 수 있습니까? 한계를 설정하고 픽셀 또는 dpi 측정 항목을 사용하는 방법은 무엇입니까? 손가락 터치 장소에서 상자 위치를 어떻게 바꿀 수 있습니까?Android OpenGL es 변형 픽셀
답변
우선 끄기, glTranslate 및 대부분의 경우가 아닌 모든 변환 값은 "-1.0"에서 "1.0"사이의 값으로 제한되지 않습니다. 개체를 왼쪽 또는 오른쪽으로 10 픽셀 이동하면 변환 행렬을 올바르게 설정해야합니다. 다음은 OpenGL에서 제공하는 정점을 조작하는 순서입니다.
[(4 × 4) 투사] [(4 × 4)보기] [(4 × 4) 모델] * [(4 × 1) 정점]
당신은 아마 glOrtho (0.0, 폭 0.0을 사용할 것, 높이, -1.0,1.0)를 사용하여 투영 행렬을 설정합니다. View 행렬을 항등 행렬로 남겨 둘 수 있습니다. 마지막으로 모델 매트릭스를 사용하여 객체를 픽셀 단위로 변환, 회전 및 크기 조절할 수 있습니다. 이제 모델 행렬의 glTranslatef (10.0,0.0,0.0)는 x 방향으로 객체를 10 픽셀 이동해야합니다. 또는 모델 행렬을 항등 행렬로 남겨두고 정점이 픽셀 좌표를 나타낼 수 있습니다.
당신은이 파워 포인트를 볼 수 있으며, 슬라이드 4에서는 정점에 무슨 일이 일어나고 있는지를 보여주는 멋진 그래픽을 볼 수 있습니다. https://wiki.engr.illinois.edu/download/attachments/195761441/OpenGL.pptx?version=1&modificationDate=1326820017000
OpenGL에서 항목의 위치를 변경하려면 glTranslate을 사용하고 크기를 그리는 경우 언제든지 사용중인 사각형의 크기를 설정할 수 있지만 내가 아는 한 그 크기를 제한 할 수는 없습니다. 개체를 사용하지만 사각형/상자를 그리기 전에 사용자가 크기를 조정하려는 크기가 Android 장치 화면보다 큰지 확인하기 위해 몇 가지 검사를 수행 할 수 있습니다. 그렇다면 아무 것도하지 않습니다 (또는 사용자에게이를 알리는 축하를 표시 할 수 있습니다
는 또한이, relation between pixels and gl.gltranslatef(floatx,y,z)? 당신을 도울 수) 좀 더 큰하지만 내가 그것을 조금 인용 할 수 없습니다
로를 예를 들어 glTranslate를 할 때 특정 개체가 이동하는 거리 (픽셀 기준)는 에서부터 뷰어까지의 거리에 따라 달라집니다. 보는 사람에게서 멀어 질수록 더 좁은 픽셀 특정 옆이나 위/아래로 변환됩니다.
예, glTranslate는 위치를 변경하지만 "1.0", "-1.0"사이의 값을가집니다. 10px로 이동하려면 어떻게해야합니까? 또는 내 터치 위치로 이동 개체? – musa
- 1. Android 용 Shader OpenGL ES
- 2. OpenGL ES 2.0에서 객체를 독립적으로 변형
- 3. Android 용 OpenGL ES
- 4. OpenGL ES 텍스처의 상단에 32 픽셀 갭
- 5. iPhone OpenGL ES 2.0 - 픽셀 완벽한 텍스처
- 6. OpenGL-es 1.1 FBO에서 픽셀 데이터 변경
- 7. OpenGL ES 쉐이더가있는 Android 테스트
- 8. Android - 카메라 및 OpenGL ES
- 9. android OpenGL ES 좌표 매핑
- 10. OpenGL ES 1.1 Android Cubemapping
- 11. android opengl es 2.0 번개?
- 12. Android OpenGL ES 앱에 텍스처로드하기
- 13. Android OpenGL ES 투명 배경
- 14. Android OpenGL ES 및 2D
- 15. Android 및 PC의 OpenGL ES
- 16. android opengl es 그레이 스케일
- 17. Android OpenGL ES 지원 어디서나?
- 18. glOrtho OpenGL es 2.0 변형 빈 화면 수정 방법?
- 19. Android OpenGL ES 2.0 비 네트 마스크
- 20. Android OpenGL ES 라인 앤티 앨리어스
- 21. OpenGL 또는 OpenGL ES
- 22. OpenGL ES 1.1에서 OpenGL ES 2.0으로 전환
- 23. OpenGL ES iPhone Textures
- 24. Andengine의 변형 된 픽셀
- 25. 삼각형 스트립으로 만들어진 쿼드의 OpenGL ES 1.1에서 텍스처 변형 문제
- 26. OpenGL ES 1.1에서 스크롤
- 27. OpenGL ES 흔들어서 효과
- 28. OpenGL ES 캔버스 크기
- 29. OpenGL ES 소스 파일
- 30. OpenGL ES 텍스처에서 잘라 내기
'GLOrtho (double, int, double, int, double, double) 메소드는 GL10' 타입의 glOrthof 또는 glOrthox' 타입에 대해 정의되지 않았습니까? – musa
당신은 glOrthof 또는 glOrthox를 사용해야합니다. 나는 내 대답을 일반화하는 방법으로 glOrtho만을 사용했습니다. – MyReliableSchreck