| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > display lists Element Transformations |
| Автор: glDevAleksey001 15.3.2015, 17:06 |
| Прошу помощи. Есть вот такой дисплей лист RenderList[0]=1; GL.Translate(Position.X, Position.Y, Position.Z); RenderList[1]=2;<-- Вот этот элемент нужно подвергнуть трансформации НЕ НАРУШАЯ ПОСЛЕДОВАТЕЛЬНОСТИ рендеринга RenderList[2]=3; GL.CallLists(RenderList.Count, ListNameType.Int, RenderList.ToArray()); Новая перекомпиляция не подходит забирает много фпс. |
| Автор: tzirechnoy 16.3.2015, 02:12 | ||
| Вообще -- если речь идёт об оптимизацыи (а не о том, чтобы "просто работало") -- то, очевидно, что всё зависит от реального кода и во что там обработка упирается. Поскольку реального кода нет и дажэ проблема не показана -- то сложно сказать что-то конкретное. Самый банальный вариант, очевидно,
В списке 2 матрица не должна сбрасываться. Да, параметрических glList у нас в общем нет. Если кажэтся, что это слишком много дроуколлов -- то можно попытаться сделать что-то вроде предварительного glPushMatrix, затем в списках её доставать через glPopMatrix. Впрочем, учитывая размер matrix stack (16 что-ли) -- выигрыш будет весьма умеренным. Ещё, если перекомпиляцыя списка 2 действительно тормозит всё (проверьте, можэт это и не так) -- то можно попытаться этот glTranslate вынести в отдельный display list, который маленький и перекомпиляцыя которого не будет проблемой. |