OpenGL ES 2.0에서 Android의 픽셀 라이팅을 사용하여 3D 장면을 그립니다. 몇 개의 작은 객체 만 렌더링하면 60FPS가됩니다. 그러나 객체를 배치하기 위해 풍경을 사용하려고하면 프레임 속도가 약 15 프레임으로 많이 떨어집니다. 나는 풍경에서 모든 픽셀에 대한 조명을 계산해야하기 때문에 이것이라고 생각합니다. 내가 이것을 최적화 할 수있는 방법이 있습니까? 내가 풍경에 그림자를 드리려고하기 때문에 정점 별 조명을 사용하고 싶지는 않습니다.Android에서 픽셀 조명 당 최적화하는 방법은 무엇입니까?
답변
위의 주석에서 나는 셰이더 코드가 그보다 더 빠를 수 없다고 생각하며 GPU 필 레이트 제한에 고정되어 있다고 생각합니다.
이 경우 객체를 현명하게 제거하여 성능을 향상시킬 수 있습니다. 먼저 가장 빠르고 간단한 쉐이더를 사용하고 가장 가까운 객체를 닫습니다 (픽셀 별 조명에 복잡한 쉐이더 사용). 이 방법으로 GPU는 풍경의 시각적 부분 만 그려 내고 풍경 쉐이더에서는 계산량이 적습니다. 필자의 경우, 객체를 재정렬하여 서로를 효과적으로 차단하기 위해 3fps를 추가로 확보 할 수있었습니다.
그러나 성능 저하가 실제로 엄청나게 커서 쉐이더 코드를 게시 할 수 있다면 쉐이더 성능을 향상시킬 수있는 몇 가지 방법이있을 수 있습니다.
아주 잘 생각한 대답이지만, 이미 그것을하고 있습니다. 아직도, 나는 잘 생각해 답변을 주셔서 감사합니다. 나는 그것을 가장 최적화하는 것에 대해 생각했고 그것이 85 % 정도라고 말하고 싶습니다. 필자가 충분히 최적화 할 수 없다면 픽셀 라이팅을 에뮬레이트하기 위해 프리픽스의면 수를 늘리는 동시에 버텍스마다 랜드 스케이프를 그릴 것입니다. – dragostis
@dragostis 저는 픽셀 단위 계산 대신에 정점 데이터를 사용하도록 제안하려고 생각했습니다. :) 예를 들어, 정점 데이터를 사용하여 AO 색상을 저장했으며 3000 개의 정점이있는 메쉬에서 상당히 잘 보입니다. – keaukraine
정확히 내 생각. :) 많이 고마워! – dragostis
카메라와의 거리에 따라 가로를 분할하는 것이 좋습니다. 가장 가까운 파티션의 경우 픽셀 당 그릴 수 있으며 더 많은 개체와 세부 정보를 추가 할 수 있습니다. 원거리 파티션의 경우 정점 조명을 사용합니다. 또한 멀리있는 사물에 사기꾼을 사용하십시오. 랜드 스케이프를 분할 할 때 근처의 풍경이 화면 공간에 투영되는 정도를 모델에 입력해야합니다. 왜냐하면 사용자가 땅을 가깝게 놓고 플레이어가 볼 수있게하면 모든 화면을 하나의 화면 단위로 렌더링해야하기 때문입니다. 픽셀 조명이며 속도 저하로 어려움을 겪을 것입니다.
- 1. 고정 함수 파이프 라인에서 픽셀 조명 당 OpenGL
- 2. Android에서 Canvas drawing-drawBitmap을 최적화하는 방법은 무엇입니까?
- 3. android에서 로그인 옵션을 최적화하는 방법은 무엇입니까?
- 4. 픽셀 당 축척을 결정하십시오
- 5. 픽셀 별 조명 검은 점/이상한 유물
- 6. OpenGL에서 픽셀 당 드로잉
- 7. 픽셀 평방 피트 당
- 8. 비트 맵에서 픽셀 당 비트 결정
- 9. WPF/XNA에서 픽셀 당 출력을 만드는 방법은 무엇입니까?
- 10. 픽셀 당 24 비트의 메모리 DC를 만드는 방법은 무엇입니까?
- 11. cli를 통해 픽셀 당 PNG 이미지를 편집하는 방법은 무엇입니까?
- 12. .bashrc를 최적화하는 방법은 무엇입니까?
- 13. drawRect를 최적화하는 방법은 무엇입니까?
- 14. C++ Bitmap 픽셀 당 비트
- 15. 안드로이드 - 픽셀 당 알파 변경
- 16. 픽셀 별 조명/노멀 맵을 사용한 2D 렌더링 - directX
- 17. 픽셀 단위로 픽셀 당 두 비트 맵 객체의 빠른 비교
- 18. 계조 (픽셀 당 8 비트) I 들었던
- 19. opencv의 calcOpticalFlowPyrLK를 최적화하는 방법은 무엇입니까?
- 20. 이 쿼리를 최적화하는 방법은 무엇입니까?
- 21. 이 검색어를 최적화하는 방법은 무엇입니까?
- 22. 이 쿼리를 최적화하는 방법은 무엇입니까?
- 23. 컴파일러에서이 함수를 최적화하는 방법은 무엇입니까?
- 24. CSS 코드를 최적화하는 방법은 무엇입니까?
- 25. SQL 쿼리를 최적화하는 방법은 무엇입니까?
- 26. 이 코드를 최적화하는 방법은 무엇입니까?
- 27. 이 쿼리를 최적화하는 방법은 무엇입니까?
- 28. 아래 쿼리를 최적화하는 방법은 무엇입니까?
- 29. Express.js 경로를 최적화하는 방법은 무엇입니까?
- 30. PHP이 코드를 최적화하는 방법은 무엇입니까?
렌더링 코드를 넣을 수 있습니까? 올바른 방향을 가리키는 데 도움이됩니다. –
코드가 너무 많아서 게시 할 수 없습니다. 내가 할 수있는 한 설명하려고 노력했다. – dragostis
당신이 의심하는 부분을 게시하기 만하면됩니다. –