блюр

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

lellel
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 19.12.2007 (Ср) 22:07
Откуда: Долгопрудный

Сообщение lellel » 23.12.2007 (Вс) 19:00

Ktulhu
спасибо, строка проходит, но возникает ошибка здесь:
Код: Выделить всё
d3dx.LoadSurfaceFromMemory Sur, ByVal 0, Rec, m(0&, 0&), D3DFMT_A8R8G8B8, 4& * Size, ByVal 0&, Rec, D3DX_FILTER_NONE, 0&

lellel
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 19.12.2007 (Ср) 22:07
Откуда: Долгопрудный

Сообщение lellel » 23.12.2007 (Вс) 19:39

Mikle взял из вашего примера модуль modPoint, один раз вызвал InitPoin, в рендере вызываю RenderPoint... компиляция проходит (сначала просил какие то переменные и функции но я их перенес и вроде такие же значения присвоил)... т.е. я хотел только "лампочку" нарисовать... в итоге на месте источнока текстура, как раз эта "лампочка" но только черное поле не обрезано, и еще все объекты получили синий оттенок... может реально синий цвет в этом замешан, либы в разы увеличилась мощность источника... вот скрины до и после... и третий скрин это когда я в рендер после рендера точки запихнул функцию которая мои параметры смешения света с текстурой применяет

добавлено позднее
Mikle в этом примере не обрезается черное поле вокруг "лампочки", оно просто такого же цвета как и цвет в который очищайется BackBuffer... а что делать если у меня текстура на потолке? этоот способ не пойдет? как говорил Ktulhu создавать прозрачный квадрат?
а эта синева вероятно оттого, что текстура светильника сильно осветляется, и я не понял где и что надо написать, чтобы это не действовало на мои объекты...
в этом примере я не нашел источников Direct, там все освещается LightMap?

и все же нельзя ли коротенькую доку об LightMap? с вычислениями я разберусь, но некоторые команды требуют конкретных знаний...

может кому не лень будет хоть где нибудь пояснение дать?
1)
Код: Выделить всё
D3DXColorScale MCol, LightColor, c

2)
Код: Выделить всё
d3dDevice.SetTextureStageState 0&, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_DISABLE
  d3dDevice.SetTextureStageState 0&, D3DTSS_TEXCOORDINDEX, 0&

  d3dDevice.SetTextureStageState 0&, D3DTSS_ADDRESSU, D3DTADDRESS_WRAP
  d3dDevice.SetTextureStageState 0&, D3DTSS_ADDRESSV, D3DTADDRESS_WRAP
  d3dDevice.SetTextureStageState 0&, D3DTSS_COLOROP, D3DTOP_SELECTARG1
  d3dDevice.SetTextureStageState 0&, D3DTSS_COLORARG1, D3DTA_TEXTURE

  d3dDevice.SetTextureStageState 1&, D3DTSS_COLOROP, D3DTOP_DISABLE

3)
Код: Выделить всё
  d3dDevice.SetRenderState D3DRS_SRCBLEND, D3DBLEND_ZERO
  d3dDevice.SetRenderState D3DRS_DESTBLEND, D3DBLEND_SRCCOLOR
  d3dDevice.SetRenderState D3DRS_BLENDOP, D3DBLENDOP_ADD
  d3dDevice.SetRenderState D3DRS_ALPHABLENDENABLE, 1&

4)
Код: Выделить всё
d3dDevice.SetTextureStageState 0&, D3DTSS_ADDRESSU, D3DTADDRESS_CLAMP
  d3dDevice.SetTextureStageState 0&, D3DTSS_ADDRESSV, D3DTADDRESS_CLAMP
  d3dDevice.SetTextureStageState 0&, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2
  d3dDevice.SetTextureStageState 0&, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_CAMERASPACEPOSITION
  d3dDevice.SetTextureStageState 0&, D3DTSS_COLOROP, D3DTOP_SELECTARG1
  d3dDevice.SetTextureStageState 0&, D3DTSS_COLORARG1, D3DTA_TEXTURE

  d3dDevice.SetTextureStageState 1&, D3DTSS_COLOROP, D3DTOP_DOTPRODUCT3
  d3dDevice.SetTextureStageState 1&, D3DTSS_COLORARG1, D3DTA_CURRENT
  d3dDevice.SetTextureStageState 1&, D3DTSS_COLORARG2, D3DTA_TEXTURE
  d3dDevice.SetTextureStageState 1&, D3DTSS_TEXCOORDINDEX, 0&

  d3dDevice.SetTextureStageState 2&, D3DTSS_COLOROP, D3DTOP_MODULATE4X
  d3dDevice.SetTextureStageState 2&, D3DTSS_COLORARG1, D3DTA_CURRENT
  d3dDevice.SetTextureStageState 2&, D3DTSS_COLORARG2, D3DTA_DIFFUSE


заранее благодарю!
У вас нет доступа для просмотра вложений в этом сообщении.

lellel
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 19.12.2007 (Ср) 22:07
Откуда: Долгопрудный

Сообщение lellel » 24.12.2007 (Пн) 22:40

извините конечно что опять новые посты забиваю, просто дома интернет сломался и я с мобильника сижу... неудобно редактировать... с примером вроде разобрался, свет добавил... остался один вопрос: а на один и тот же вертекс можно два таких источника применить? один у меня получается, а вот второй: никак... если можно, то хотя бы примерно как... спасибо!

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 25.12.2007 (Вт) 20:53

lellel
Возможно до восьми источников, на каждый свой SetLight и LightEnable.

lellel
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 19.12.2007 (Ср) 22:07
Откуда: Долгопрудный

Сообщение lellel » 25.12.2007 (Вт) 21:42

я имел виду два LightMap на одну поверхность(на один вертекс)...


послушайте! создатели игр! очевидно чтобы комната выглядела реалистично нужно использовать свет... (а может кто то еще что скажет по этому поводу??)... вопрос: какой свет использовать, комната выглядела более или менее реалистично? никаких динамических теней (если неправильно выражаюсь, я имею ввиду теней которые бы изменялись, которые нужно рассчитывать заново) нет! все задается при пуске... какие тени лучше использовать?

lellel
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 19.12.2007 (Ср) 22:07
Откуда: Долгопрудный

Сообщение lellel » 25.12.2007 (Вт) 21:51

я конечно понимаю, чтобы что то нормальное написать нужно сначала учиться... вот только времени не хватает (я в одиннадцатом классе) а написать хочется. хочется написать как бы 3D альбом (типа на стенах портреты одноклассников), как сделать саму комнату понятно, а свет? вот я думал может вообще не использовать свет? или создать в центре достаточно мощный источник чтобы и на стены попадало? и без всяких LightMap... помогите пожалуйста! оч прошу!

Ktulhu
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 132
Зарегистрирован: 14.07.2007 (Сб) 14:03
Откуда: Киев, Р'льех

Сообщение Ktulhu » 25.12.2007 (Вт) 22:14

Лайтмапы реалистичнее всего будут для статических обьектов.
В твоем случае, если нет тяги писать и разбиратся в алгоритме просчета лайтмапов, можешь нарисовать лайтмапы в фотожопе на каждую поверхность и вручную их понакладывать.

Еще мож попробовать стены сделать не из 2х триугольников, а намного больше... тогда можно будет и динамический свет юзать

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 25.12.2007 (Вт) 23:59

Ktulhu
Вершинный... А если карта побольше? Зачем убивать столько на треугольники, если можно сделать Per-Pixel?
#define ROFL 0xDDDD

lellel
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 19.12.2007 (Ср) 22:07
Откуда: Долгопрудный

Сообщение lellel » 26.12.2007 (Ср) 6:34

сколько я понял из примера Mikle или это только в этом примере, LightMap добавляется на поверхность, а на прилегающие поверхности похоже не действует... и что, писать его для каждого вертекса? а два LightMap на один вертекс у меня не вышло добавить...

Ktulhu
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 132
Зарегистрирован: 14.07.2007 (Сб) 14:03
Откуда: Киев, Р'льех

Сообщение Ktulhu » 26.12.2007 (Ср) 9:26

DirectXManiac
я писал про конкретную ситуацию с шестью плоскими поверхностями

lellel
может два источника на поверхность не получилось из-за того, что у тебя видеокарта может только 2 текстуры смешать (насколько я помню пример Mikle)

lellel
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 19.12.2007 (Ср) 22:07
Откуда: Долгопрудный

Сообщение lellel » 26.12.2007 (Ср) 10:25

насколько я понял тот пример, там такая система что не поставишь два источника (лайтмап)... а чтобы поставить надо переписывать код, который я до конца не понял... хотя может и не так... наверное если взять текстуру света побольше и на ней две светлые точки поставить то все получится... попробую...

а вот еще вопрос: больше восьми источников света (динамич) нельзя, а в серьезных игрушках этим обходятся? или вообще какой то другой свет используют?

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 26.12.2007 (Ср) 22:01

Ktulhu
Ну тогда прокатит) Но в любом случае если этот пример станет кодом для уровня лучше делать сразу правильно....
lellel
Там шейдерный свет... Т.е. если посудить они(источники) исскуственные, но свет реальный... Дилема, епт :D
Использовать лучше всего лайтмэпы. Просчет при старте... Пишешь в текстуру и накладываешь )
#define ROFL 0xDDDD

lellel
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 19.12.2007 (Ср) 22:07
Откуда: Долгопрудный

Сообщение lellel » 27.12.2007 (Чт) 7:07

то есть можно добиться чтобы все выглядело нормально.. пусть даже мне для этого придется для каждой поверхности текстуру света рисовать... так и сделаю! спасибо!

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 27.12.2007 (Чт) 15:10

lellel
Если свет статический и применяется лайтмэп, то несколько текстур просто не нужно, лайтмэп суммируется ЗАРАНЕЕ в одну текстуру.
Ты определись поконкретнее, какая стоит задача, тогда и решение придет быстрее.

Пред.

Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 63

    TopList