GameDev.ru
/ GameDev.ru / Пользователи / Andrey / Сообщения на форуме пользователя Andrey

Сообщения на форуме пользователя Andrey

Постояльцы, кто чем знаменит?19 дек. 201214:21#344
Sasha7b9
> И, кстати, больше девчонок-программистов здесь не появлялось)
hellocate
http://www.gamedev.ru/users/?id=40892
Постояльцы, кто чем знаменит?19 дек. 201210:53#309
Еще вспомнил профи.
_Winnie
Разработчик игр. Отличный программист. Знает много всего. Автор одного из аллакаторов памяти. К примеру экспериментировал по подмене malloc в CRT на знаменитый аллокатор от doug lea. http://www.gamedev.ru/code/forum/?id=69522
cppguru
Известный программист. Автор многих статей и подсказок форума. Автор некоторых Gamedev Lecture. В прошлом помогал новичкам.
СyberZX
Опытный разработчик игр. Специалист про низкоуровневому и кроссплатформенному программированию. Бывший модератор.
kas
Квалифицированный программист под разные платформы. Автор статьи Software Occlusion Culling.. Пропагандирует правильное программирование без гавнокода и тормозящих свистоперделок типа STL/boost там где это действительно вредит. Пишет умные посты, но с небольшими намеками, дав понять что нужно разбираться самому, что сильно стимулирует к развитию, естественно тем кто на это способен. Не рекомендуется не адекватным вступать с ним в дискуссию.
Мак - клон линукса?19 дек. 201210:13#31
Den Zurin
>Linux и MacOS X являются POSIX-системами. POSIX - стандарт для UNIX-совместимых ОС.
Ну точнее Linux по большей части POSIX совместимая но не сертифицирована. Mac OS X полностью совместимая и сертифицированная.
Постояльцы, кто чем знаменит?18 дек. 201216:17#173
Вспомнил еще:
IronBunny
Опытный Графический программист. Разработал движок для одного из проектов компании Biart Studio.
Fly
Знаменитый автор уроков по программированию движков для новичков(многие там обучались). Опытный разработчик 3D игр и приложений.
Zulus
Вместе с Fly вел проект для новичков. В итоге сильнейшие из оставшихся получили шанс в коммерческой разработке игры для конкурса. По словам авторов они достигли своей цели. Проект удался на славу.
korak
Ведущий проекта RGDEngine.Опытный разработчик игр.
Постояльцы, кто чем знаменит?18 дек. 201213:38#123
Семен
> Давайте как-нибудь дружить поколениями!
Да не вопрос.Ты на форуме побольше пиши умных вещей! На постах таких людей учатся, не наступают в будущем на грабли и т.д.
Постояльцы, кто чем знаменит?18 дек. 201212:20#104
Мдя...
Еще есть грамотные люди. Почему никто про них не вспомнил?
Zeux
Опытный графический разработчик, и не только. Консоли/PC. Написал достаточно быстрый XML парсер PugiXML, с минимальным число аллокаций. Рвет любые биздевские свистоперделки типа MS XML и т.д.
IronPeter
Кандидат математических наук. Лучший графический/низкоуровневый программист России. Запил Герои 5 и другие игровые проекты. Очень глубоко развивается в железе графике, алгоритмах, математике.В данный момент работает в yandex'е и наверняка оптимизирует поиск данных.
Семен
Бывший опытный графический разработчик. Работал в Microsoft над Direct3D Runtime. После этого опять пошел в гемдев.
dDima Дмитрий Долгов. Опытный разработчик игр. Знаменит по ведению форума на конференции разработчиков игр. На данный момент Технический продюсер внешних игровых проектов 1С
aruslan
Очень известный программист.Очень хорошо знает C++ и правильное применение в разработке игр.Так-же глубоко разбирается в архитектуре ПО.
GLoom
Довольно известный разработчик игр различных жанров.
Sergey Makeev
Графический программист XBox 360/PC. Технический директор игрового подразделения mail.ru.
frustum
Знаменитый автор Unigine.
NULL_PTR
Графический программист.
О. Федор
Специалист по вычисления на GPU. CUDA/OpenCL/ATI Stream/DirectCompute.

В некоторой информации могу ошибаться.

OpenGL: Основы. (комментарии)17 дек. 201218:06#67
Pixar
>Fundamentals of Texture Mapping and Image Warping
Отличное чтиво!
Сравнение скорости шести c++ компиляторов14 дек. 201210:03#51
sb3d
> Там стояло "Multi-threaded DLL (/MD)". Перекомпилил, разницы нет.
> Это к какой части теста совет?
Это что-бы dll с CRT не требовать.
OpenGl-Несколько процессов13 дек. 201222:26#5
ShadowTeolog
> Софтина с богатой историей, использует шейдеры, фреймбуфер, копирование тексур в видеопамяти.
glGetLastError,
>на отрисовку с разными настройками в несколько разных окон.
_heapchk,GetLastError()
непонятки с компиляцией фрагментного шейдера13 дек. 201222:23#18
RuZaKy
> D3DX10CompileFromMemory()
Можно и нужно, подсовываешь ему ID3D10Blob* в предпоследнем параметре. Далее строка с ошибкой
const char* warning_error_messages = reinterpret_cast<const char *>(errorMessage->GetBufferPointer()
Читай наконец DirectX SDK. Это основы.
Сравнение скорости шести c++ компиляторов13 дек. 201210:45#41
sb3d

Тяжело FPS увидеть. Усреднять бы по 10 кадрам к примеру.

Intel i7 2600

Intel c++ XE 13    290
VisualStudio 2012    290
Borland c++ 5.02    160
GCC 4.4.1        220
GCC 4.4.7        240
Watcom 1.9      200

непонятки с компиляцией фрагментного шейдера13 дек. 201210:13#15
RuZaKy
> почему то нельзя float  cRange[2] в одну переменную зафигачить
  float3 cLightPos[2] : packoffset(c0);
  float  cRange[2] : packoffset(c1);
Можно и так. В общем почитай действительно про регистры, их размер и упаковку. И смотри что-бы в коде ты правильно их хранил передавал. А то отладке замучаешься. Будут странные эффекты на экране или вообще ничего работать не будет.
непонятки с компиляцией фрагментного шейдера13 дек. 201210:06#14
RuZaKy
Вот это компилится. Заодно варнинги поправил. Когда диффузионное освещение считаешь, будь осторожен с обратными гранями, когда нормаль вершины и направление источника источника тупой угол.
Ну и потом с pow:
83,12): warning X3571: pow(f, e) will not work for negative f, use abs(f) or conditionally handle negative values if you expect them
//
Texture2D  MRT0 : register(t0);
SamplerState MRT0Sampler : register(s0);
Texture2D  MRT1 : register(t1);
SamplerState MRT1Sampler : register(s1);
Texture2D  MRT2 : register(t2);
SamplerState MRT2Sampler : register(s2);

cbuffer PerFrameData : register( b0 )
{
  float  cElapsedTime : packoffset(c0);
};

cbuffer PerPassData : register( b1 )
{
  row_major float4x4  cView : packoffset(c0);
  row_major float4x4  cViewProj : packoffset(c4);
  row_major float4x4  cProj : packoffset(c8);
  float4      cEyePosition : packoffset(c12);
  float2      cNearFar : packoffset(c13);
};


cbuffer Light : register(b2)
{
  float3 cLightPos[2] : packoffset(c0);
  float2  cRange : packoffset(c2);
  float4 cAmbient[2] : packoffset(c3);
  float4 cDiffuse[2] : packoffset(c5);
  float4 cSpec[2] : packoffset(c7);
  float3 cAtt[2] : packoffset(c9);
  float  cSpotPower[2] : packoffset(c11);
};

#define LIGHTS_COUNT 2

struct VS_OUTPUT
{
  float4 Position : SV_POSITION;
  float2 TexCoord : TEXCOORD0;
  float3 ViewPosition : TEXCOORD1;
};

struct PS_OUTPUT
{
  float4 Color0 : SV_TARGET;
};

float3 decode_pos( float4 enc )
{
  return (enc.xyz*enc.w/enc.z);
}

float3 decode_normal( float3 enc )
{
  return enc * 2.0 - 1.0;
}

float4 CalcLight( VS_OUTPUT input )
{
  float4 resultColor = 0;
  float3 pos = decode_pos(float4(input.ViewPosition, MRT0.Sample(MRT0Sampler, 

input.TexCoord).r));
  float3 normal = normalize(decode_normal(MRT1.Sample(MRT1Sampler, 

input.TexCoord).rgb));
  float4    color = MRT2.Sample(MRT2Sampler, input.TexCoord);
  const float k        = 0.8;
  const float     specPower  = 30.0;
  float3      eye_pos_eye = mul(cEyePosition, cView).xyz;
  float3      viewVec    = normalize(eye_pos_eye - pos);
  float      NdotV    = max(dot(normal,viewVec), 0); !!!!!  dot(normal, lightVec) mat be < 0!!!!!!!
  float3      light_pos_eye;
  float3      lightVec;
  float      NdotL;
  float      diff;
  for(int i = 0; i < LIGHTS_COUNT; ++i)
  {
    light_pos_eye = mul(float4(cLightPos[i],1.0), cView).xyz;
    lightVec = normalize(light_pos_eye - pos);
    NdotL = max(dot(normal, lightVec), 0); // !!!!!  dot(normal, lightVec) mat be < 0!!!!!!!
    diff = pow(NdotL * NdotV, k)*saturate(NdotL);
    resultColor.xyz += cDiffuse[i].xyz*diff;
  }

  //resultColor.xyz = cLightPos[0];
  resultColor.xyz *= color.xyz;
  resultColor.w = 1;
  return resultColor;
}

PS_OUTPUT Pixel_Shader( VS_OUTPUT input )
{
  PS_OUTPUT output;
  output.Color0 = CalcLight(input);
  return output;
}
Тормоза при загрузке ресурсов в отдельном потоке12 дек. 201216:27#28
innuendo
> Отцы говорят всякие там локфрии нужно кочегарить ... 
Можно и нужно.Но сложнее в реализации, и на разных платформах сильно по разному.

Следующие темы >>

2001—2012 © GameDev.ru — Разработка игр