Cheb's Game Engine

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

Re: Cheb's Game Engine

Сообщение скалогрыз » 26.07.2016 00:02:29

Cheb писал(а):Что совой об пень, что пнём об сову.

понятно. Тогда дровишек апдейт :)

хотя как тогда GL_EXTENSIONS читается? glGetString по-идее не сработает пока gl контекст не выбран.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Cheb's Game Engine

Сообщение Cheb » 26.07.2016 01:09:25

З.Ы. Open Arena летает с полным ускорением. Полез поискать в исходниках, как это ей удаётся - но, увы, SDL 1.3.

Добавлено спустя 9 минут 47 секунд:
хотя как тогда GL_EXTENSIONS читается?

А она читается постфактум, только для журналирования. Движок тупо в лоб пытается загрузить все используемые расширения (целых два, не считая базовой GL 2.1).

Но, вот, что получаем:
Код: Выделить всё
  устройство GDI Generic
  производитель Microsoft Corporation
  версия драйвера 1.1.0


То есть,
1) грузится базовая 1.1 и wgl- функции
2) создаётся контекст
3) догружаются GL_version_2_1, GL_ARB_framebuffer_object, GL_ARB_shader_objects

И уже на п.3 наступает обломинго, тупо оттого, что первая же из функций не найдена.

Код: Выделить всё
        with pfd do
        begin
          nSize           := SizeOf(TPIXELFORMATDESCRIPTOR); // Size Of This Pixel Format Descriptor
          nVersion        := 1;                    // The version of this data structure
          dwFlags         := PFD_DRAW_TO_WINDOW    // Buffer supports drawing to window. Should be off for Voodoo2 ?..
                             or PFD_SUPPORT_OPENGL // Buffer supports OpenGL drawing
                             or PFD_DOUBLEBUFFER;  // Supports double buffering
          iPixelType      := PFD_TYPE_RGBA;        // RGBA color format
          //cColorBits      := 32;                   // OpenGL color depth
          //cDepthBits      := 16;
          iLayerType      := PFD_MAIN_PLANE;       // Ignored
        end;

        // Пытаемся подобрать формат пикселя, поддерживаемый контекстом устройства,
        //  наиболее близкий к желаемому... Почему-то очень часто роняло Win98
        //  если запрашивался буфер глубины больше 16 бит... :(
        // P.S. Сколько лет этому куску кода?
        if Mother^.Debug.Verbose then AddLog('Calling wglChoosePixelFormat()...');
        // in Win98 calling ChoosePixelFormat() often caused a system-wide crash... :(

        PixelFormat := wglChoosePixelFormat(display, @pfd);
        if (PixelFormat = 0)
          then Die(MI_ERROR_CANTINITOPENGL,['wglChoosePixelFormat() returned 0']);

        if Mother^.Debug.Verbose then AddLog('chosen pixel format = %0.',[PixelFormat]);

        // Устанавливаем для нашего контекста устройства подобранный формат пикселя
        if not wglSetPixelFormat(display, PixelFormat, @pfd)
          then  Die(MI_ERROR_CANTINITOPENGL,['wglSetPixelFormat() returned FALSE.']);

        // Создаём рисовальный контекст OpenGL..
        RenderingContext := wglCreateContext(display);
        if (RenderingContext = 0)
          then Die(MI_ERROR_CANTINITOPENGL, ['wglCreateContext() returned 0']);

        if Mother^.Debug.Verbose then AddLog('rendering context = %0',[RenderingContext]);

        // ..и делаем его текущим.
        if (not wglMakeCurrent(display, RenderingContext))
          then Die(MI_ERROR_CANTINITOPENGL, ['wglMakeCurrent() call failed']);
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение скалогрыз » 26.07.2016 04:29:55

а если через wglChoosePixelFormatARB попробовать?

у меня тоже флажок PFD_GENERIC_ACCELERATED не ставит, но согласно документации пока не выставлен PFD_GENERIC_FORMAT , то бояться не стоит
Код: Выделить всё
NVIDIA Corporation
GeForce GT 330M/PCIe/SSE2
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Cheb's Game Engine

Сообщение Cheb » 26.07.2016 12:04:36

Тогда дровишек апдейт

Интел бросил поддержку подобного говна мамонта, последний драйвер - для вин7/8.1 от июня 2015-го и более свежих не будет уже никогда.

З.Ы. По прежнему не вижу на рынке равных этому маленькому, но свирепому зверю. 13 дюймов, 35 ватт, покупал в 12 году за 22 тысячи рублей. Ныне эквивалент по производительности есть только у фуджицу, 106 тысяч рублей. :( Воистину артефакт.
З.З.Ы. Если не гнаться за суперсовременной графикой, то на встроенной видяхе OpenGL Extension Viewer рендерит тестовую рожу с шейдерами 1920x1080 на 330 FPS. OpenArena летает на 1600x1200. Чентра (ещё на семёрке, пока работала) держала QF тестовой сцены в районе 300, то есть трёхкратный суперсэмплинг.
Короче, не для современной переусложнённой графики, но на чём-то вроде майнкрафта жжёт не по детски.


З.З.З.Ы Соседка принесла мою кошку, нашла на улице. Дверь закрыта, форточки... А не, токрыта форточка. А этаж, между прочим, шестой.
Отделалась эпичной, сине-красной ссадиной на подбородке. Дуууура. Изображение

wglChoosePixelFormatARB

Вечером попробую.

пока не выставлен PFD_GENERIC_FORMAT

Ага!..
Последний раз редактировалось Cheb 31.07.2018 23:21:51, всего редактировалось 1 раз.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Cheb » 29.07.2016 19:30:44

а если через wglChoosePixelFormatARB попробовать?

Нету такой функции :evil:

Всё, проехали, решил обойти проблему путём забивания болта и использования SDL (поддержка которой сейчас - конь не валялся, надо активизировать). Программы, использующие SDL, проблем не имеют.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение скалогрыз » 29.07.2016 19:54:14

Cheb писал(а):Программы, использующие SDL, проблем не имеют.

а если ZenGL попробовать?
Там примерчики есть готовые, они с акселерацией или без?
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Cheb's Game Engine

Сообщение Cheb » 30.07.2016 18:47:28

Угадайте, как решилась проблема?
ДОСТАТОЧНО БЫЛО ОТКЛЮЧИТЬ В МАНИФЕСТЕ ЗАЯВЛЕНИЕ О ПОДДЕРЖКЕ ДЕСЯТОЙ ВИНДЫ! :evil: :evil: :evil: :evil:
Чентра опознала операционку как вынь 8.1 и спокойно запустилась :evil: :evil: :evil: :evil:
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Cheb » 17.08.2016 10:01:01

Пришлось откатить с Win10 обратно на Win7 из-за абсолютно нестабильного поведения древнедрайверов видеокарты. За двадцать дней десятка четыре раза свалилась в синий экран смерти и счёту не поддаётся, сколько раз тупо зависла.

Я даже полную разборку-чистку-сборку ноуту делал, чтобы убедиться, что это не отошедший контакт. И сеанс швыряния об диван с запущенной OpenArena. Железо всё выдержало с честью.

Луч ненависти в сторону Intel.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Лекс Айрин » 17.08.2016 10:15:22

Cheb писал(а):Луч ненависти в сторону Intel.


А интел то тут при чем? Сам сказал, что видеокарта древняя... тогда уж пеняй на MS -- они не обеспечили корректную совместимость.

ЗЫ: если что, то некоторые фирмы отказывают в техподдержке из-за наличия на ноуте win10, как раз из-за невозможности добиться корректной работы дров. И настоятельно рекомендуют не обновляться до нее.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Cheb's Game Engine

Сообщение Cheb » 17.08.2016 14:42:19

А MS-то тут причём? Кто драйвер-то должен делать? Интел, ити их за ногу.
Что обидно - на сраном нетбуке, устаревшем ещё в 2010 году, десятка встала и работает идеально (меееееедленно, естественно, но надёжно).
А реально нужная машина с производительностью 30 гигафлопс - ХРЕН:evil:
intelburntest1.png
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Cheb's Game Engine

Сообщение Лекс Айрин » 17.08.2016 16:54:01

Cheb писал(а):Что обидно - на сраном нетбуке, устаревшем ещё в 2010 году, десятка встала и работает идеально (меееееедленно, естественно, но надёжно).


Видимо, на стандартных дровах... Ничего удивительного нет. Я как то в комп поставил древнейшую еще PCI видеокарту. (другой просто временно не было) нашел и дрова под семерку и она прекрасно заработала.

Cheb писал(а):А MS-то тут причём? Кто драйвер-то должен делать?


Вообще-то MS гарантирует совместимость дров, так что она действительно виновата. А интел... она то дрова может, и сделает... и они даже будут работать идеально, но какая-нибудь функция в ядре подгребет и завалит систему. А о "стабильности" десятки уже легенды ходят.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Cheb's Game Engine

Сообщение hinst » 14.09.2016 17:40:00

портируй движок на Vulkan API
OpenGL пора сдать в музей
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: Cheb's Game Engine

Сообщение скалогрыз » 14.09.2016 19:07:40

hinst писал(а):портируй движок на Vulkan API
OpenGL пора сдать в музей

думаешь библиотеки типа "OpenGL over Vulkan" не появятся?
Счастье в том, что Вулкан работает только на свежих карточках, а сколько ещё старого железа осталось.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Cheb's Game Engine

Сообщение Лекс Айрин » 14.09.2016 19:19:19

скалогрыз, еще AGP-видюхи встречаются... А некоторые админы держат для теста PCIные.
И, кстати, сколько было прорывных технологий, которые почили в бозе... иных уже никто и не помнит...
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Cheb's Game Engine

Сообщение Cheb » 19.09.2016 03:05:14

Окей, просто отметиться, что живой. Время появится хорошо, если в следующем месяце.
Было, если честно, но я всё его угрохал на собирание на свою задницу всех багов в очередной стадии роста PE. Набрал пару десяткой, но этот - самый смешной (не уследил, какие семена сваливаю в закрома родины, и неписи засадили весь огород слегка светящимися деревьями. В сто тысяч солнц мой огород пылал и умирали FPS'ы... :lol: ).

Мои раздумия на тему текстурирования ландшафта: http://www.gamedev.ru/code/forum/?id=218520 (вкратце, мегатекстура - это слишком толсто, надо быть хитрее)
Практическое применение - смотрю в сторону чтения из текстуры в вершинном шейдере. Путём использования почти пустого хитрозадого VBO, в вершинный шейдер будут передаваться только номер треугольника и номер вершины в нём. Вся мякотка (включая вершины, нормали и детали текстурирования) будет лежать в текстурах, ужатая не хуже чем до 16-битных целых. Причём, у вершин, нормалей и прочего будут у каждых свой индекс - ещё больше экономия памяти. А экономия памяти - это прирост скорости. Вершинный шейдер, опять же, будет гнать в фрагментный uniform индекс текстурирования треугольника и varying s,t координат в треугольнике, а инфу для мультитекстурирования фрагментный шейдер будет выковыривать из ещё одной текстуры (опять же, пожатую), накладывая из атласа произвольное количество текстур на полигон с произвольными правилами смешивания. :roll:

Осталась самая мелочь - взять и написать и увидеть, взлетит оно или приводнится мордой в лужу. :mrgreen:
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Пред.След.

Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21

Рейтинг@Mail.ru