Сегодня 15 сентября 2025
18+
MWC 2018 2018 Computex IFA 2018
реклама
Аналитика

Джон Кармак - мысли вслух (.plan)

Name: John Carmack 
Email: 
Description: Programmer 
Project: 
Last Updated: 06/27/2002 21:18:25 (Central Standard Time) 
---------------------------------------------------------
June 27, 2002 
------------- 
Заметки о графических акселераторах:

 John Carmak Вынужден принести свои извинения Matrox – их реализация текстурирования посредством карт смещения оказалась НЕ квадратичной. Перепутал с некоторыми другими компаниями, применяющими такой метод. Та реализация, которую использует Matrox, по сути, очень неплоха, и даже если мы не будем ее использовать из-за усиления геометрии, она всё равно сможет задавить любую другую quad-based технологию.

На прошлой неделе я получил карту 3Dlabs P10 и проверил её производительность и возможности. Из-за моей постоянной занятости и отсутствия свободного времени, подчас именно первое впечатление от карты определяет мои дальнейшие с ней отношения и то количество времени, которое я ей уделю. Помнится, я несколько месяцев не общался с ATi после того, как они передали мне образец карты Radeon 8500 с кривыми драйверами, некорректно выводившими консоль. :-)

Я был весьма впечатлен тем, что у P10 оказались равно успешно функциональными как ARB_ расширения (за исключением зеркальных бликов), так и комбинаторы регистров чипа NV10 (расширение NV_register_combiners). Я столкнулся только с двумя случаями полностью некорректной работы с любыми нашими данными, причем один из них спорный. Не поддерживается расширение NV_vertex_program_1_1, которое я использую в случае с NV20. Тогда, для того, чтобы провести тестирование, я модифицировал программу таким образом, чтобы она работала с расширением версии 1.0, однако проблемы остались. Тем не менее, эта карта является лучшей среди тех, что выпущены не nVidia.

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

Находясь под первым, но положительным, впечатлением о карте, я решил переписать ядро так, чтобы карта смогла делать в Doom однопроходный рендеринг. Единственным целесообразным способом реализовать это казалось использование примененных 3DLabs расширений nVidia, то есть NV_vertex_program и NV_register_combiners с семью текстурами вместо четырех, доступных для GeForce 3/4. Однако, вместо этого, я решил использовать прототипы расширений OpenGL 2.0, поддержка которых также реализована на P10.

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

Я буду постепенно реализовывать рендеры OpenGL 2.0 в Doom на протяжении всего времени эволюции спецификаций OpenGL 2.0.

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

Я проводил детальных сравнений с Cg. Есть около полудюжины C-подобных графических языков, и, честно говоря, я не думаю, что между ними так уж много различий на уровне синтаксиса. Все они гораздо лучше тех интерфейсов, которые мы используем в настоящее время и я не думаю, что будут проблемы с синтаксисом. Не так долго осталось до того момента, когда вся работа будет делаться в одном из этих языков, а разработчики, придерживающиеся более низкоуровневого кодинга, будут подобны тем, кто пишет полностью ассемблируемые приложения (меня забавляют люди, придерживающиеся полностью ассемблируемого кода, это, может быть, впечатляюще, но неэффективно).

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

June 25, 2002 
-------------

Отчет по Matrox Parhelia:

Вкратце можно сказать, что Doom будет работать на Parhelia, но по производительности карта не может конкурировать с продуктами nVidia и ATI.

Остались проблемы с драйверами, и они до сих пор не идеальны, однако я уверен, что Matrox решит эту проблему.

Для первой карты с 256-ти битной DDR памятью, производиетельномть меня очень разочаровала. Я специально создал программу, попытавшись нагрузить память, обойдя неэффективность драйвера и полигонального движка, однако мне не удалось достичь даже производительности GeForce 4. Базовая аппаратная поддержка хороша, местами больше гибкости, чем у GF4 (но меньше, чем у ATI 8500), но карта просто не может конкурировать по чистой производительности. С «утоньчением» технологического процесса производства, чип станет вполне конкурентным, но к тому моменту появятся уже другие чипы, способные полностью затмить нынешнее поколение продуктов.

Ни одна специальная возможность Parhelia не пригодится для Doom.

Десяти битный буфер кадра, это здорово, но Doom требуется более 2 бит для destination alpha, когда у карты всего четыре текстурных блока, поэтому мы не можем использовать эту возможность.

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

Карты смещения. Я разочарован, что в индустрии до сих пор применяется quad based метод. Неужели мы не поняли на неудачном примере 3DO, Saturn и NV1, что такие решения являются полным отстоем? В любом случае, мы не можем использовать схему улучшения геометрии (включая ATi TruForm) вместе с трафаретными тенями.

March 15, 2002 
--------------

Марк Килгард и Касс Эверитт из nVidia опубликовали любопытный документ, рассказывающий о рендеринге объемных теней. Они также включили в него небольшой документ о моих исследованиях во время ранних работ над ядром Doom, который я писал несколько лет назад.

http://developer.nvidia.com/view.asp?IO=robust_shadow_volumes

 
 
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.

window-new
Soft
Hard
Тренды 🔥
К структуре «Росатома» и «Т-Плюс» предъявили иски на 645 млн рублей за долги перед SAP 59 мин.
Alphabet стала четвёртой компанией в истории с капитализацией более $3 трлн 2 ч.
OpenAI проанализировала, кто и зачем использует ChatGPT: к работе относится лишь четверть запросов 3 ч.
Мессенджер Max сможет заменить паспорт при покупке товаров для взрослых, но пока в тестовом режиме 4 ч.
«Снова жду игру»: первое открытое бета-тестирование российского MMO-шутера Pioner стартует в октябре 4 ч.
Журналисты раскрыли новые подробности игры Insomniac про Венома и сроки выхода Marvel’s Wolverine 5 ч.
Microsoft изменила работу геймпадов Xbox в Windows 11 7 ч.
Сюжетный боевик Squadron 42 во вселенной Star Citizen могут опять перенести — разработчик поставил под сомнение релиз в 2026 году 9 ч.
«Будто фанатский фильм посмотрел»: Netflix подтвердила дату выхода четвёртого сезона «Ведьмака», а новый тизер сериала утонул в дизлайках 10 ч.
Юрлицо российского игрового движка Nau Engine, в который VK хотела вложить 1 млрд руб., ликвидируется 10 ч.
Western Digital предупредила о повышении цен на все виды HDD 2 ч.
«Аккумулятор вздувается, экран выскакивает», — владельцы Pixel 7 и Pixel 7 Pro столкнулись с серьёзными проблемами 3 ч.
AMD записала Ryzen 9000X3D в «клуб 1000 FPS» — такая скорость обещана в киберспортивных играх 4 ч.
Вместе с iPhone 17 компания Apple выпустила динамическую зарядку с плавающей до 60 Вт мощностью 4 ч.
Cougar выпустила корпус CFV235 с «парящим» отсеком для материнской платы 6 ч.
Следующий флагманский чип Qualcomm получит название Snapdragon 8 Elite Gen 5 — компания пояснила свою логику 6 ч.
Adata представила два суперкулера XPG Maestro Plus c дисплеями и корпус XPG Valor Air Pro 7 ч.
Продажи Ethernet-коммутаторов и маршрутизаторов корпоративного класса растут на фоне бума ИИ 7 ч.
Производители флеш-памяти готовятся резко задрать цены — грядёт подорожание SSD 8 ч.
Gigabyte выпустила компактный ИИ ПК AI Top Atom на базе суперчипа NVIDIA GB10 9 ч.