Сегодня 20 февраля 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
Тренды 🔥
«Билайн бизнес» возглавил рейтинг виртуальных АТС от CNewsMarket 7 ч.
Попытка россиян оспорить ограничения Telegram и WhatsApp провалилась во второй раз 9 ч.
Sony закроет студию разработчиков ремейков Demon’s Souls и Shadow of the Colossus, не дав им выпустить ни одной игры 9 ч.
Google заблокировала тысячи разработчиков и удалила миллионы сомнительных приложений в 2025 году 10 ч.
Google сделала Chrome удобнее для работы — браузер получил разделённый экран и заметки в PDF 10 ч.
Спустя девять лет ожиданий гоблинский стелс-экшен Styx: Blades of Greed стартовал в Steam с «в основном положительными» отзывами 12 ч.
Google представила поумневшую ИИ-модель Gemini 3.1 Pro — «для задач, где простого ответа недостаточно» 12 ч.
Интернет наводнили критические спойлеры к Resident Evil Requiem — сюжет, концовка, судьбы героев и не только 12 ч.
Кодзима заинтриговал фанатов тизером нового трейлера — Kojima Productions готовит жуткий хоррор OD и шпионский боевик Physint в духе Metal Gear Solid 13 ч.
Китайская ByteDance разгоняет разработку передового ИИ прямо в США — открыты десятки вакансий 14 ч.
Семь человекоподобных роботов Agility помогут со сборкой Toyota RAV4 в Канаде 4 ч.
Microsoft ускорила и удешевила стеклянные хранилища Project Silica, но о практическом внедрении речи пока нет 9 ч.
Новая статья: Царь-чипы для царь-задач 9 ч.
Intel внедрила ИИ в техподдержку — но он даёт глупые и опасные советы 11 ч.
Квантовая телепортация по городскому интернету: Deutsche Telekom успешно протестировала технологию в Берлине 11 ч.
AMD установила мировой рекорд разгона GPU — Radeon RX 9060 XT довели до 4769 МГц 11 ч.
Отечественная замена МКС задерживается: старт развёртывания Российской орбитальной станции теперь планируется на 2028 года 14 ч.
Титановый корпус, яркий экран и месяц автономности: Amazfit представила смарт-часы T-Rex Ultra 2 для активных пользователей 15 ч.
Глубоко копают: Google заказала ещё 150 МВт геотермальной энергии для своих ЦОД 16 ч.
Humain из Саудовской Аравии инвестировала $3 млрд в стартап xAI Илона Маска 16 ч.