Сегодня 30 июля 2026
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
Тренды 🔥
Microsoft подтвердила подготовку «суперприложения» Copilot — оно выйдет уже в этом году 22 мин.
«Яндекс» выпустит в сентябре универсального ИИ-агента для офисных задач 24 мин.
«Мясистая» кампания, четыре стиля игры и кооператив: подробности и геймплей сюжетного шутера The Defiant в антураже японо-китайской войны 2 ч.
Эвакуационный шутер Rules of Engagement: The Grey State получит отдельный PvE-режим — разработчики показали его устройство в новом трейлере 2 ч.
Control Resonant и правда станет самой большой игрой Remedy — сиквел Control удивит продолжительностью 3 ч.
ИИ Anthropic Mythos обнаруживает уязвимости в продуктах Microsoft быстрее, чем их успевают исправлять 4 ч.
Инсайдеры раскрыли, когда Rockstar вернётся с новостями по GTA VI — геймплей и третий трейлер на подходе 5 ч.
«Не совсем сиквел. Не совсем приквел»: анонсирован олдскульный квест Thimbleweed Park 2 от создателя Monkey Island 5 ч.
Google запустит глобальную проверку возраста пользователей Android — как у Apple 14 ч.
Google выпустила музыкальную ИИ-модель Lyria 3.5 — она создаёт более насыщенное и эмоциональное звучание 14 ч.
Ровер Curiosity обнаружил на Марсе огромное поле из неправильных сот — а неправильных пчёл не нашёл 16 мин.
Мобильное подразделение Samsung впервые в истории закончило квартал с убытком — виноват дефицит памяти 16 мин.
Sony захотела купить производителя объективов Tamron 17 мин.
MSI анонсировала серверы на базе AMD EPYC Venice 9006 с воздушным и жидкостным охлаждением 19 мин.
Грядёт подорожание смартфонов: Qualcomm объявила о повышении цен на все свои чипы с 1 сентября 20 мин.
AAEON представила Mini-ITX-плату MIX-Q870A1 с процессором Intel Core Ultra 200S 22 мин.
Samsung: дефицит памяти сохранится не только в следующем, но и в 2028 году 2 ч.
Boeing может отправить злополучный Starliner в новый полёт ещё до конца 2026 года 2 ч.
Цукерберг пообещал ИИ-агентов для всего, но инвесторов это не впечатлило — акции Meta рухнули на 11 % после отчёта 3 ч.
Доходы Xbox продолжают падать, но облачный и ИИ-бизнес Microsoft компенсируют спад 8 ч.