Мне нужно решить, следует ли использовать GL_UNSIGNED_SHORT или GL_FLOAT для моего (статического) VBO для вершин. Шорты используют в 2 раза меньше памяти, но также уменьшают скорость рендеринга (потому что графический процессор должен преобразовывать их в плавающие)? То же самое для текстурных координат я мог бы использовать GL_UNSIGNED_BYTE для меньших текстур и GL_UNSIGNED_SHORT для более крупных (с использованием текстурной матрицы для отображения до 0-1), но я беспокоюсь, что это может уменьшить скорость рендеринга.OpenGL VBO: короткий или плавающий?
ответ
Для любого современного оборудования (с поддержкой DX10 или лучше) вы можете предположить, что производительность чтения атрибутов всегда зависит от доступа к памяти, а не от преобразования из целого числа в float. По существу это бесплатно.
Это в основном относится к аппаратуре класса DX9, но некоторые аппаратные средства имеют определенные форматы вершин, с которыми он не работает.
Это, как говорится, я не был бы так уверен в возможности использовать беззнаковые байты для координат текстуры. В большинстве моделей вам обычно требуется большая точность, чем per-texel для координат текстуры. Неподписанные шорты, как правило, прекрасны, но в байтах просто недостаточно точности, чтобы заставить его работать.
Преобразование короткого замыкания в поплавок должно быть довольно дешевой операцией. Я бы думал, что сбережения в пропускной способности памяти перевешивают дополнительные затраты на обработку.
Но без фактического тестирования это не остается чем-то вроде дикой догадки.
- 1. Динамический VBO в OpenGL
- 2. Структура OpenGL vbo
- 3. opengl vbo advice
- 4. OpenGL VBO лучшие советы
- 5. Оказание BSP с VBO или шейдером? OpenGL
- 6. Android OpenGL Vertex Array или VBO
- 7. OpenGL VBO setup
- 8. OpenGL VBO Troubles
- 9. OpenGL Indexed VBO Rendering
- 10. OpenGL VBO handle
- 11. Обновление openGL VBO
- 12. vbo management in opengl
- 13. Данные обновления OpenGL VBO
- 14. OpenGL Drawing с VBO
- 15. Возможности OpenGl VBO в C++
- 16. OpenGL: Странный бахавы удаления VBO?
- 17. OpenGL VBO - Array Stride неправильно?
- 18. OpenGL простая проблема с VBO
- 19. Проблемы с рисунком OpenGL VBO
- 20. OpenCL не обновляет OpenGL VBO
- 21. Opengl VAO и объекты VBO
- 22. OpenGL меняет данные VBO иногда
- 23. OpenGL VBO ничего не рисует
- 24. OpenGL: VBO и сломанный GC
- 25. OpenGL VAO VBO shaders confusion
- 26. OpenGL VBO чередуется и чередуется
- 27. Множество текстур OpenGL с VBO
- 28. OpenGL не рисовать треугольники VBO
- 29. VBO Position Issue OpenGL, C++
- 30. OpenGL VBO Загрузка данных шрифта
для моих целей беззнаковые байты будут работать отлично для текстур до 128x128, также что вы имеете в виду определенные вершинные форматы, не работают хорошо? (Я нацелен на OpenGL 2.0) – Jonathan