OpenGL Wrapper в .Net - PullRequest
       24

OpenGL Wrapper в .Net

2 голосов
/ 27 апреля 2010

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

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

Есть предложения? Подойдут как открытые, так и коммерческие компоненты.

Ответы [ 4 ]

4 голосов
/ 27 апреля 2010

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

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

2 голосов
/ 27 апреля 2010

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

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

2 голосов
/ 27 апреля 2010

Взгляните на

1 голос
/ 28 апреля 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...