OpenGL Wrapper в.Net

Этот вопрос похож на тот, что здесь. Но я чувствую, что рекомендуемые ответы (такие как Tao и OpenTK) не достаточно хороши, потому что это просто прямой порт от OpenGL, без дизайна ООП и сложный в использовании.

Мне нужна оболочка.Net OpenGL, написанная на понятных принципах ООП, простая в использовании (легкая в применении, текстовая и световая, легкая в отладке и т. Д.), Способная вращать трехмерную диаграмму с помощью мыши (функция, которая критически отсутствует в OpenGL и TAO) и возможность экспорта в другие форматы файлов (такие как dwg или dxf или формат файла Google Map).

Любое предложение? Подойдут как открытые, так и коммерческие компоненты.

5 ответов

Решение

Хотя вы правы в том, что оболочка ООП возможна, на самом деле вам нужно сначала понять, как работает OpenGL (это верно для любого API-оболочки, и вдвойне так для OpenGL). Поскольку вы находите API OpenGL сложным в использовании, вы, вероятно, недостаточно хорошо понимаете рендеринг, чтобы использовать любой API-оболочку.

Большинство оболочек избегают использования сложных классов классов, поскольку сохранение состояния с каждым объектом и отправка его в графический процессор для каждого объекта очень неэффективно и может снизить частоту кадров. Вы, программист, должны знать об этих болевых точках, а не пытаться скрыть их за абстрактным слоем обертки. Библиотекарь не может решить их за вас.

Взгляни на

Большая проблема заключается в том, что OpenGL - это не OOP-фреймворк, а конечный автомат ( http://en.wikipedia.org/wiki/Finite-state_machine), поэтому любой перевод в библиотеку OOP добавит много сложностей, которые замедлит вашу программу. Так что либо используйте его как конечный автомат, либо посмотрите на библиотеку ООП, такую ​​как OGRE. Но для многих вещей OGRE будет слишком ограничительным.

Когда дело доходит до этого, зачем вам ООП с OpenGL? Есть причина, по которой библиотека была написана так, как она была, и это потому, что она очень четко отображается на оборудовании под ней. В ООП видеокарта не думает, это конечный автомат, и библиотека, используемая для ее программирования, отражает это.

Может быть, слишком высокомерно, но я пишу свою собственную абстракцию. Он работает в большинстве случаев, но находится в состоянии планирования, но дает представление о том, как реализовать абстракцию ООП "OpenGL".

Посмотрите на SVN: http://sourceforge.net/projects/genomalib/develop

Конечно, это не решение для производственного кода, но оно с открытым исходным кодом и легко расширяется, как только вы получаете дизайн. В последнее время я добавил "устаревший" API, так как он изначально был написан для рендеринга только с шейдерами (в действительности он все еще не поддерживает "старое" оборудование); но, конечно, у меня есть средства для оказания...

ShapGL является лучшим и простым в использовании с Winforms и WPF. https://github.com/dwmkerr/sharpgl

Другие вопросы по тегам