воскресенье, 3 ноября 2013 г.

Ray Tracing From the Ground Up

Решил посвятить свободное от работы время real-time рейтрейсингу. Первые результаты:


Луч тестируется на пересечение со сферами и треугольниками сцены. Если луч попадает на сферу, он отражается и тестируется его пересечение с треугольниками подиума. Вот так просто :)

Почему рейтрейсинг? Основная причина - неспособность растеризатора синтезировать изображение требуемого качества. Мне просто надоело выдумывать хаки, чтобы получилось изображение с нужным качеством. Возьмём те же тени - правильную пенумбру невозможно рассчитать, если силуэт объекта или его карта теней строится из одной точки. Penumbra wedges или blocker search не решают эту проблему - значит, эти подходы не дадут нужного качества (я уже не говорю про их сложность и прожорливость к вычислениям - а ведь это всё в рамках растеризации!). Правильный depth-of-field нужно делать с огромными хаками, т. к. растеризатор представляет собой pinhole камеру. Я уже не говорю про преломления - тут вообще тушите свет. И не рассказывайте мне про графику Battlefield 4. Мне - не надо.

Поэтому я решил на какое-то время оставить традиционные техники, связанные с растеризацией и покопать теорию по трассировке лучей, попытавшись реализовать на GPU некоторые эффекты. Например - те же тени. В последние годы скорость GPU значительно выросла, а при желании (и финансовых возможностях) в будущее можно заглянуть, вставив в системный блок SLI из 4 видеокарт. К слову - говорят, новые Hawaii замечательно масштабируются в CrossFire. Или всё-таки выбрать NVidia?


среда, 23 октября 2013 г.

Gravity

Фильм вдохновит многих мальчишек на попытку стать космонавтами!

воскресенье, 20 октября 2013 г.

Parking

Интересно, если из космоса на нас смотрят зелёные человечки, какие мысли приходят им в головы при взгляде на такую ситуацию:



Наверное они размышляют примерно таким образом: "Эти двуногие обезьяны похоже не слишком умны, раз не способны решить проблему своего собственного транспорта. Пожалуй, контакт лишён смысла".

среда, 2 октября 2013 г.

AMG

Мне кажется, или эти машины смотрят на меня как на г*вн*?



понедельник, 30 сентября 2013 г.

Баллмер

Мужик нашёл в себе силы уйти красиво в отставку. В принципе подвинули заслуженно, ибо все модные тренды IT последнего десятилетия он профукал или не счёл важными. Этакий Брежнев Майкрософта.

суббота, 28 сентября 2013 г.

TroutZoom

Разыскал отличный plug-in для Visual Studio 2012. Позволяет один раз установить масштабирование в окне редактора, и сохраняет его для всех открываемых файлов. Очень странно, что постоянный уровень масштабирования не является стандартной фичей новых студий - это выглядит естественней, чем каждый раз сбивающийся на 100% масштаб.

Мне эта функциональность полезна тем, что я могу тонко менять размер отображаемых шрифтов через масштабирование, а не через выбор кегля шрифта. При стандартных 96 DPI тот же Courier New выглядит по-разному с кеглями 8 и 9 - движок растеризации шрифтов даёт ошибки при столь низкой плотности пикселей. То же самое и с моим любимым шрифтом Crystal - он сильно меняется в начертании при маленьких кеглях. Тут либо ждать UltraHD мониторов, либо применять масштабирование, ставшее доступным с WPF.

Есть и другие расширения подобного рода, но они часто написаны под VS 2010 и не совместимы с новыми версиями. И ещё одно: VS Express не позволяет устанавливать многие типы расширений (Tools в частности), поэтому необходима только полная версия студии.

четверг, 26 сентября 2013 г.

Mantle

AMD анонсировала новый API Mantle для низкоуровневого доступа к видеокартам с архитектурой GCN. В обход DirectX, который, по правде, не такой уж и direct.

Не удивительно, если вспомнить что некоторое время назад один из представителей AMD говорил что нам нужен прямой доступ к железу на PC. Здравствуйте низкоуровневые оптимизации? Frostbite 3 уже использует преимущества Mantle:

  • Enables 9X more draw calls per second than other APIs by reducing CPU overhead
  • Enables higher graphics performance with direct access to all GPU features
  • Leverage optimization work from next-gen game consoles to PCs

В общем очень интересная штука, но позволить себе использовать её могут только дорогие движки или гики. Вопросы совместимости с железом: где гарантия что мой рендер будет работать через два поколения видеокарт AMD? При том что конечно он не будет работать на видеокартах NVidia. Этот код будет жить одно-два поколения железа.

Ждём ответного хода конкурента, которому в дополнение к CUDA осталось выпустить какой-нить pc-GCM. А вообще,  хотелось бы увидеть нечто подобное для Linux, чтобы не использовать этот гадкий OpenGL.

developer.amd.com по поводу Mantle пока нем как рыба.