Оконное приложение C# с OpenGL рисованием кривой

Каноничные:увага:
И без всяких ебаных дотнетов! Тока unmanaged!
В студии и пиши.
Там надо напрямую к опенГЛю обращаться, или тоже через сторонние либы? Бо боюсь, что проблемы будут точно не же самые, что и в дотнете :)


У тебя щас проблемы что-то не отрисовывается, а на на директе у тебя будет ебля с ебаным COM-ом и интерфейсами.
У меня щас проблемы с тем, что тупо не работает либа, или качаешь, подключаешь dll - а студия сообщает, что там нет ни какого контрола.
Короч, одна либа работает пока с под шарпа, относитьельно без бубнов.
 
Там надо напрямую к опенГЛю обращаться, или тоже через сторонние либы?
Шо там подключать? gl.h и opengl32.lib и все.

Бо боюсь, что проблемы будут точно не же самые, что и в дотнете
Схуяли? Стандартный хедер и импорт либа, которые юзаются миллионами разрабов. А не какой-то сторонний самопальный Тао.
 
У меня щас проблемы с тем, что тупо не работает либа, или качаешь, подключаешь dll - а студия сообщает, что там нет ни какого контрола.
Короч, одна либа работает пока с под шарпа, относитьельно без бубнов.
С директом у тебя будет проблема вообще хоть что-то нарисовать. Бо если в сях не спец и COM в глаза не видел, то ну его нахуй, лучше и не начинать.
Там тока инициализация всей этой ебалы тот еще квест.
Да, когда я интересовался биндингами для директа под дотнет, это где-то год 2009-2010-й, таковых стандартных от M$ не существовало. Вернее, они их делали до какой-то версии, потом забили, и придумали такую хуйню как XNA (которая уже тоже сто лет как мертва) - сильно упрощенная прокладка для директа специально для дотнета. Так что в случае с директом тебе точно придется писать на крестах, без вариантов.
 
Ну, так и есть, под директ щас существуют только third party врапперы, типа SharpDX и SlimDX.
 
Я конечно уважаю таких динозавров и сам когда-то под чистый DirectX писал... Но почему нельзя использовать современные графические инструменты типа того же Unity3D?
 
Бгг - так на Тао забили 10 лет назад?:рл: И шо ты от него хочешь?:D
Хочу, чтобы текст выводился вменяемо.
Опен-тк, вроде, запустился с графикой нормально. Но там текст не предусмотрен - самому педалить.

Я конечно уважаю таких динозавров и сам когда-то под чистый DirectX писал... Но почему нельзя использовать современные графические инструменты типа того же Unity3D?

Потому, что мне с ним разбираться - реально больше работы, чем сделать 1 сраный экран в опен-жл.
Прога вообще оконная. Похожа на сраный осциллограф. Мало того - она будет работать с последовательным портом, и, возможно - с USB, получая оттуда данные и визуализируя курвы на тот экранчик.

Зачем мне Юнити, который я не знаю? Я ж не 3D игрушку леплю.
 
В юнити вполне неплохие 2Д возможности и С#
 
В юнити вполне неплохие 2Д возможности и С#

Ну, я как-то ставил его - ни фига не понял зачем он.
И он, по моему, лицензию по просил... или то не он, но я разбираться не стал. В целом - с ним со старта возникли какие-то проблемы и он был послан то-ли на, то ли - в.
 
1. Начало отсчета окна - левый верхний угол. То есть, мне надо самому писать инверсию. Бо у всех нормальных людей знак вектора + по Y это вверх, а тут получается вниз.

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

2. Нет вывода текста OpenGLем. Можно сделать но будет калично.

рисование красивого текста - это целая тема. Вам наверно лучше попробовать Direct2D, там сразу есть все необходимые функции для работы со шрифтами (загрузка шрифта, получение глифов и аутлайнов, формирование геометрии, форматирование, лайаут и т.д.)

Впизду, это вообще маразм тот еще.
У тебя щас проблемы что-то не отрисовывается, а на на директе у тебя будет ебля с ебаным COM-ом и интерфейсами.

Бред. Никакой ебли. Судя по уровню, лушче взять готовые обёртки, их для дотнета дохуя и больше написано. Например sharpdx

Нету, и не под что другое нету, потому шо это изврат, ОГЛ - это только Ц и кресты.

Бред. OpenGL можно практически на любом языке использовать. Выбранный топикстартером C# идеально подходит под указанную задачу.


попробовал подключить SharpGL. Это ёбаный пиздец. Версий с десяток, понять в какой всё работает из нугета - нереально.

это не столько проблема библиотеки, сколько проблема самого OpenGL. С ним на любом языке есть куча гемора с разными расширениями и разными версиями контекста. Проблема заключается в том, чтобы правильно загрузить контекст OpenGL нужной версии. Но тот-же sharpdx по большей части прячет все эти зависимости внутри себя.

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

Просто тупо средствами .NET не успевает по сериал-порту считывать и отрисовывать - отстает чтение из порта, буфер наполняется и если долго так делать - отключаешь порт, а эта ебатория продолжает рисовать :) Ну, или виснет.

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

По большому счёту, вашу задачу можно прекрасно решить и с помощью GDI. Но если хочется красивую и быструю графику, со сглаживанием, то лучше использовать Direct2D или OpenGL. OpenGL кроссплатформенный, но с рисованием красивого текста будут сложности, поэтому если вам не критична привязка только к ms windows платформе, то лучше использовать Direct2D - это самый быстрый и качественный с точки зрения графики API под windows.
 
x҉ o҉ r҉;64684962 сказав(ла):
в графике абсолютно похуй, откуда начинается начало отсчёта, какой масштаб или угол наклона изображения. Скорректируйте матрицу преобразования координат перед началом отрисовки под удобный вам формат, вот и всё.



рисование красивого текста - это целая тема. Вам наверно лучше попробовать Direct2D, там сразу есть все необходимые функции для работы со шрифтами (загрузка шрифта, получение глифов и аутлайнов, формирование геометрии, форматирование, лайаут и т.д.)



Бред. Никакой ебли. Судя по уровню, лушче взять готовые обёртки, их для дотнета дохуя и больше написано. Например sharpdx



Бред. OpenGL можно практически на любом языке использовать. Выбранный топикстартером C# идеально подходит под указанную задачу.




это не столько проблема библиотеки, сколько проблема самого OpenGL. С ним на любом языке есть куча гемора с разными расширениями и разными версиями контекста. Проблема заключается в том, чтобы правильно загрузить контекст OpenGL нужной версии. Но тот-же sharpdx по большей части прячет все эти зависимости внутри себя.


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

Збазибо, учтём
Дело в том, что архитектура идёт к тому, чтобы рисовать графику чисто шейдерами, т.е. на вычислительных мощностях самой видеокарты, практически без использования основного процессора. В такой модели вообще всёравно какой язык будет использоваться, хоть JS. На скорости это заметно не отразится. Но для топикстартера, это пожалуй будет слишком сложно.
И совершенно непонятно, стоит ли байт-поток преобразовывать для шейдеров, если и так есть функции для рисования плоской геометрии, которой и является кривая.
P.S. А кто треуголку нажал?
 
И совершенно непонятно, стоит ли байт-поток преобразовывать для шейдеров, если и так есть функции для рисования плоской геометрии, которой и является кривая.

по сути эти функции эмулируются шейдерами. Они оставлены просто для совместимости. Но в вашем случае думаю нет смысла разбираться с шёйдерами, у вас быстрее получится загрузить вертекс буффер координатами точек и вызвать функцию отрисовки примитивов.

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

Отрисовать примитивы для 100000 точек на фрейм получится без проблем. Всё должно летать. С текстом сложней, если нужно много текстов рисовать, то есть смысл прогрузить глифы в видеопамять или использовать загрузить текстуры глифов. Проблема только в том, что текстуры прийдётся грузить для каждого размера шрифта, который используется в сцене. Т.е. при большом количестве текстов, с шрифтами разных размеров, требования в видеопамяти растут. Для текстов часто используют кеш в виде готовых текстур, которые обновляются только при изменении текста.
 
игассе... По сумме балов сразу в перманент? Это шо за нарушение такое?
 
символы в нике кому-то не понравились, хотя формально было в соответствии с правилами)) Пришлось менять ник.
 
Назад
Зверху Знизу