Написал утилиту позволяющая упростить перевод Valve файлов локализации, наподобие *_english.txt, *_russian.txt... С помощью неё можно быстро найти не переведенные места или где изменился оригинальный английский текст.
Хотел опробовать LINQ, поэтому решил в проекте использовать его. Поэтому для запуска требуется .Net Framework 3.5
Скачать и посмотреть исходники можно тут
четверг, 18 декабря 2008 г.
воскресенье, 2 ноября 2008 г.
Разблокировка Microsoft PIX для игр
Обновил утилиту, теперь она помимо PerfHUD не дает заблокировать использование с игрой и PIX (например для TF2). Скачать можно тут.
Инструкция к использованию такая:
1. Распаковываем архив
2. Запускаем DllInjector
3. Нажимаем InjectDll и выбираем ForcePerfHUDOn
Update: исправил проблемы на некотрых системах
Инструкция к использованию такая:
1. Распаковываем архив
2. Запускаем DllInjector
3. Нажимаем InjectDll и выбираем ForcePerfHUDOn
Update: исправил проблемы на некотрых системах
Перехват D3D9 или как устроены StateBlock'и
Когда мы решили полностью отказаться от вызова Get* методов D3D9 в нашей обертке над ним, а перехватывать для этого Set* методы и сохранять значение там мы с толкнулись с некоторыми непредвиденными трудностями.
Перехватив все нужные методы мы столкнулись с одной интересной особеностью реализации StateBlock'ов в D3D9, при вызова BeginStateBlock() D3D9 меняет указатели в таблицы виртуальных функция устройства у следующих методов: SetMaterial, SetRenderState, SetTexture, SetTextureStageState, SetSamplerState, SetFVF, SetVertexShader, SetVertexShaderConstantF, SetVertexShaderConstantI, SetVertexShaderConstantB, SetStreamSource, SetStreamSourceFreq, SetIndices, SetPixelShader, SetPixelShaderConstantF, SetPixelShaderConstantI, SetPixelShaderConstantB, а остальные Set* функции просто не применяю новые значения состояний к устройству и только сохраняют их в StateBlock'е. Насколько я знаю в COM нет легального способа поменять указать в VTBL, т.е. это по сути хак. С этим возникли проблемы когда мы хотели вызвать оригинальные методы внутри BeginStateBlock\EndStateBlock.
Перехватив все нужные методы мы столкнулись с одной интересной особеностью реализации StateBlock'ов в D3D9, при вызова BeginStateBlock() D3D9 меняет указатели в таблицы виртуальных функция устройства у следующих методов: SetMaterial, SetRenderState, SetTexture, SetTextureStageState, SetSamplerState, SetFVF, SetVertexShader, SetVertexShaderConstantF, SetVertexShaderConstantI, SetVertexShaderConstantB, SetStreamSource, SetStreamSourceFreq, SetIndices, SetPixelShader, SetPixelShaderConstantF, SetPixelShaderConstantI, SetPixelShaderConstantB, а остальные Set* функции просто не применяю новые значения состояний к устройству и только сохраняют их в StateBlock'е. Насколько я знаю в COM нет легального способа поменять указать в VTBL, т.е. это по сути хак. С этим возникли проблемы когда мы хотели вызвать оригинальные методы внутри BeginStateBlock\EndStateBlock.
вторник, 21 октября 2008 г.
iZ3D
Вот появилась статья о нашем мониторе на fcenter.ru
Вот цитата от автора обзора
Вот цитата от автора обзора
Team Fortress 2. Стереоэффект выражен великолепно, игра действительно приобретает третье измерение, а сильнее визуального эффекта от улетающей от вас ракеты – лишь эффект от прилетающей в вас гранаты. Очень впечатляюще выглядят взрывы и дымовые шлейфы пролетающих ракет, при виде летящей навстречу гранаты инстинктивно зажмуриваешься, а вот близко пробегающие соратники или противники двоятся слишком сильно.
пятница, 27 июня 2008 г.
PerfHUD для всех игр
понедельник, 16 июня 2008 г.
Spore Creature Editor
пятница, 7 марта 2008 г.
Глюки и недокументированные вещи Direct3D, драйверов NVidia и ATI
Входе работы над нашим стерео драйвером были обнаружены множество глюков, которые в силу специфики в других приложениях видимо небыли замечены.
- Как то возникла необходимость выполнять операции прерывая рендеринг игры, пришлось использовать StateBlock'и для того чтобы никакие State игры не испортить. Оказывалось что если создать StateBlock при запуске программы CreateStateBlock(D3DSBT_ALL, ...), а потом его использовать Capture, а затем Apply то все Offset'ы Stream'ов сбросятся в 0. Поэтому пришлось сохранять все смещения потоков (GetStreamSource) и потом их восстанавливать (SetStreamSource). А если же StateBlock создавать каждый раз и применять, то почему-то ещё портятся некоторые вертексные константы с индексами свыше 128, по крайней мере такие вещи были замечены на некоторых играх, причем между Create, Apply вообще не одна константа в коде не менялась.
- Частое переключение RenderTarget'ов, DepthStencil поверхностей сильно тормозит на NVidia, а на ATI только при включение AntiAlising'а.
- На NVidia не работает 255'ая константа для VertexShader'ов.
- ID3DXFont портит какие-то State'ы из за чего появлялись глюки в некоторых играх, при рисование FPS с помощью него. Поэтому вместо него стали пользоваться AngelCode Bitmap Font
- На NVidia не работает MRT если поставить в качестве RenderTarget'ов BackBuffer'а от двух SwapChain'ов если создать из со включенным антиалайзингом.
- Не где не сказано, но видимо подозревается как само собой разумеющееся. При установке 0'го RenderTarget'а Viewport и ScissorRect устанавливаются по размерам этой поверхности.
пятница, 15 февраля 2008 г.
Portal
Появился перевод интервью с Ким Свифт о замечательной и неповторимой игре Portal
http://portal.alex7kom.ru/63/
Расказывается о нашем друге кубике и GLaDOS. :-) Реомендую.
http://portal.alex7kom.ru/63/
Расказывается о нашем друге кубике и GLaDOS. :-) Реомендую.
вторник, 5 февраля 2008 г.
Новый пост...
Наконец-то добрался до блога. Всех кстати с наступаюшим восточным новым годом. Все это время усиленно занимался разработкой нашего драйвера, просмотром сериалов и игрой в TF2 :-)
Теперь наш драйвер поддерживает анаглиф, так что любой кто хочет попробовать поиграть в стерео в любую D3D игрушку и завалялись красно-синие очки например от фильма "Дети Шпионы 3D" милости прости. Скачать его можете от сюда. После запуска Control Center'а нажмите Ctrl+3 для переключения в анаглиф режим. И можете запускать любую игрушку использующую Direct3D 8, 9. Рекомендую в стерео: Flatout, FarCry, HL: E2 (особенно поглядеть вблизи на вортигонта).
Теперь наш драйвер поддерживает анаглиф, так что любой кто хочет попробовать поиграть в стерео в любую D3D игрушку и завалялись красно-синие очки например от фильма "Дети Шпионы 3D" милости прости. Скачать его можете от сюда. После запуска Control Center'а нажмите Ctrl+3 для переключения в анаглиф режим. И можете запускать любую игрушку использующую Direct3D 8, 9. Рекомендую в стерео: Flatout, FarCry, HL: E2 (особенно поглядеть вблизи на вортигонта).
Подписаться на:
Сообщения (Atom)