Страница 13 из 61
Re: Cheb's Game Engine
Добавлено: 25.07.2016 23:02:29
скалогрыз
Cheb писал(а):Что совой об пень, что пнём об сову.
понятно. Тогда дровишек апдейт

хотя как тогда GL_EXTENSIONS читается? glGetString по-идее не сработает пока gl контекст не выбран.
Re: Cheb's Game Engine
Добавлено: 26.07.2016 00:19:12
Cheb
З.Ы. 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']);
Re: Cheb's Game Engine
Добавлено: 26.07.2016 03:29:55
скалогрыз
а если через wglChoosePixelFormatARB попробовать?
у меня тоже флажок PFD_GENERIC_ACCELERATED не ставит, но согласно
документации пока не выставлен PFD_GENERIC_FORMAT , то бояться не стоит
Код: Выделить всё
NVIDIA Corporation
GeForce GT 330M/PCIe/SSE2
Re: Cheb's Game Engine
Добавлено: 26.07.2016 11:04:36
Cheb
Тогда дровишек апдейт
Интел бросил поддержку подобного говна мамонта, последний драйвер - для вин7/8.1 от июня 2015-го и более свежих не будет уже никогда.
З.Ы. По прежнему не вижу на рынке равных этому
маленькому, но свирепому зверю. 13 дюймов, 35 ватт, покупал в 12 году за 22 тысячи рублей. Ныне эквивалент по производительности есть только у фуджицу, 106 тысяч рублей.

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

wglChoosePixelFormatARB
Вечером попробую.
пока не выставлен PFD_GENERIC_FORMAT
Ага!..
Re: Cheb's Game Engine
Добавлено: 29.07.2016 18:30:44
Cheb
а если через wglChoosePixelFormatARB попробовать?
Нету такой функции

Всё, проехали, решил обойти проблему путём забивания болта и использования SDL (поддержка которой сейчас - конь не валялся, надо активизировать). Программы, использующие SDL, проблем не имеют.
Re: Cheb's Game Engine
Добавлено: 29.07.2016 18:54:14
скалогрыз
Cheb писал(а):Программы, использующие SDL, проблем не имеют.
а если
ZenGL попробовать?
Там примерчики есть готовые, они с акселерацией или без?
Re: Cheb's Game Engine
Добавлено: 30.07.2016 17:47:28
Cheb
Re: Cheb's Game Engine
Добавлено: 17.08.2016 09:01:01
Cheb
Пришлось откатить с Win10 обратно на Win7 из-за абсолютно нестабильного поведения древнедрайверов видеокарты. За двадцать дней десятка четыре раза свалилась в синий экран смерти и счёту не поддаётся, сколько раз тупо зависла.
Я даже полную разборку-чистку-сборку ноуту делал, чтобы убедиться, что это не отошедший контакт. И сеанс швыряния об диван с запущенной OpenArena. Железо всё выдержало с честью.
Луч ненависти в сторону Intel.
Re: Cheb's Game Engine
Добавлено: 17.08.2016 09:15:22
Лекс Айрин
Cheb писал(а):Луч ненависти в сторону Intel.
А интел то тут при чем? Сам сказал, что видеокарта древняя... тогда уж пеняй на MS -- они не обеспечили корректную совместимость.
ЗЫ: если что, то некоторые фирмы отказывают в техподдержке из-за наличия на ноуте win10, как раз из-за невозможности добиться корректной работы дров. И настоятельно рекомендуют не обновляться до нее.
Re: Cheb's Game Engine
Добавлено: 17.08.2016 13:42:19
Cheb
А MS-то тут причём? Кто драйвер-то должен делать? Интел, ити их за ногу.
Что обидно - на сраном нетбуке, устаревшем ещё в 2010 году, десятка встала и работает идеально (меееееедленно, естественно, но надёжно).
А реально нужная машина с производительностью 30 гигафлопс - ХРЕН:evil:
Re: Cheb's Game Engine
Добавлено: 17.08.2016 15:54:01
Лекс Айрин
Cheb писал(а):Что обидно - на сраном нетбуке, устаревшем ещё в 2010 году, десятка встала и работает идеально (меееееедленно, естественно, но надёжно).
Видимо, на стандартных дровах... Ничего удивительного нет. Я как то в комп поставил древнейшую еще PCI видеокарту. (другой просто временно не было) нашел и дрова под семерку и она прекрасно заработала.
Cheb писал(а):А MS-то тут причём? Кто драйвер-то должен делать?
Вообще-то MS гарантирует совместимость дров, так что она действительно виновата. А интел... она то дрова может, и сделает... и они даже будут работать идеально, но какая-нибудь функция в ядре подгребет и завалит систему. А о "стабильности" десятки уже легенды ходят.
Re: Cheb's Game Engine
Добавлено: 14.09.2016 16:40:00
hinst
портируй движок на Vulkan API
OpenGL пора сдать в музей
Re: Cheb's Game Engine
Добавлено: 14.09.2016 18:07:40
скалогрыз
hinst писал(а):портируй движок на Vulkan API
OpenGL пора сдать в музей
думаешь библиотеки типа "OpenGL over Vulkan" не появятся?
Счастье в том, что Вулкан работает только на свежих карточках, а сколько ещё старого железа осталось.
Re: Cheb's Game Engine
Добавлено: 14.09.2016 18:19:19
Лекс Айрин
скалогрыз, еще AGP-видюхи встречаются... А некоторые админы держат для теста PCIные.
И, кстати, сколько было прорывных технологий, которые почили в бозе... иных уже никто и не помнит...
Re: Cheb's Game Engine
Добавлено: 19.09.2016 02:05:14
Cheb
Окей, просто отметиться, что живой. Время появится хорошо, если в следующем месяце.
Было, если честно, но я всё его угрохал на собирание на свою задницу всех багов в очередной стадии роста PE. Набрал пару десяткой, но
этот - самый смешной (не уследил, какие семена сваливаю в закрома родины, и неписи засадили весь огород слегка светящимися деревьями. В сто тысяч солнц мой огород пылал и умирали FPS'ы...

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