Apr. 11th, 2017

smugastyi_kit: (Default)
А вот давайте представим, что включили завтра с утра телевизор, а там, ну пусть даже не Лебединое озеро (ничто в мире не идеально),
а речь питуна: "Я устал, я ухожу".
Или еще проще, питун со всеми своими шавками пропадает в неизвестном направлении.
И адекватным людям становится понятно, что на дворе — опять наступают благословенные девяностые (только в этот раз, скорее всего без гуманитарки из США/Европы). 

Так вот, как думаете, эти вчерашние ватники, что привалили в DW, так же будут отстаивать поруганную честь расеюшки на просторах интернета, или возьмут ноги в руки, и пойдут строить дивный, новый мир на руинах старого (ну, или добирать то, что недобрали в силу возраста в 90-е)?

Это я к тому, сколько на самом деле стоит их пиздежь в сети. И какой среди них процент истинных гм..."верных Ленинцев". :)

C++

Apr. 11th, 2017 07:59 am
smugastyi_kit: (Default)
Для самого себя неожиданно, после стольких лет с managed/скриптовыми языками — вернулся в родной и уютный C++. Под винду. 
Ну здравствуй, дорогой stdafx.h, вижуалстудия, шаблоны, STL, MFC, COM, boost, Direct3D, UE, указатели и ловля утечек памяти.
Как домой вернулся, после долгих лет странствий. :)

P.S. Задумался, давно ли не брал я в руки шашек. Оказалось, чуть ли не с демо-мейкерской молодости (хотя, там больше ассемблера было). То есть, последнее, что-то серьезное на плюсах, я писал в 2003-м году.
Это был софтовый телефон для VoIP, под H323 стек (OpenH323, если оно еще живо).
Интересное и веселое было время. У меня, 21-летнего поца, в то время была "крупная телеком компания" из трех человек.
Но дела давно минувших дней заслуживают отдельного поста. :)
smugastyi_kit: (Default)
Мало кто знает, что любое приложение (игру) под Direct3D 11, можно запустить на любом, в принципе, железе.
Даже на таком, которое поддерживает только D3D9. Или даже вообще про DirectX не знает.

Это возможно благодаря тому, что в D3D11 появился механизм WARP (Windows Advanced Rasterization Platform).
В принципе, это обычный софтовый растеризатор. Древние 3Д игрушки так и работали. Все полигоны текстурировались (в случае надобности), освещались и отрисовывались процом (эхх, сколько времени тратилось на то, чтобы написать на ассемблере самый-самый-быстрый polyfiller... романтика!).

Благодаря WARP — те вещи, что железо не может нарисовать само, будут обсчитаны процессором. 
Это не очень быстро, но хоть как-то...
Тот-же Fallout 4 или 3-го Ведьмака — вполне можно запустить даже на встроенной интелевской видяхе.
На супер-низких настройках, в оконном 800x600 — можно выжать 8-15fps на несильно сложных сценах. Если еще больше "оптимизировать" — в теории можно получить 10-20fps, при 99% загрузке процессора.

Включается WARP для любой игрушки просто. Гуглится утилитка под названием dxcpl. Это часть пакета DirectX 11 SDK. 
В ней выбирается требуемый exe-шник, ставится галочка напротив Force WARP и в Feature level limit выбирается версия DirectX, которую требуется отдавать игрушке.
Чудес не бывает, все будет довольно ощутимо тормозить, но заценить графику (на минимальных настройках) и даже чуть-чуть поиграть — вполне получится. :)

Пока писал — вспомнил как в 95-м году я таки умудрился запустить Need For Speed 1 на машине с 4 метрами памяти. (игра требовала 8).
Редко кто помнил, что Watcom C-шный екстендер DOS/4GW умеет сразу отдавать столько памяти, сколько у него запросят, за счет своппинга на диск. Теоретически, скормив ему правильный ключик, можно было эмулировать хоть 64мб (недостижимая в то время мечта). Если правильно помню — PhysMin=4096, VirtualSize=8192 были те чудесные ключики.
Правда тормозило все это — просто ужасно. :)

UPD: Я люблю точные формулировки, поэтому должен сказать, что в том, что эмулит WARP, только недостающие фичи видяхи, или абстрактную видяху в целом — я не уверен, а в MSDN лезть просто лень. Думаю, что все таки недостающие возможности, так как полностью растеризовать картинку современных 3д игр посредством проца — дело гиблое.