 |

19.08.2022, 15:44
|
|
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами:
4633764
Репутация:
148
|
|
я в шоке, написал эту тонировку, всё работает у мен как надо, на gtx1660, а у дружбана на radeon не работет!!!
помогите пж, как этот шейдер сделать, чтоб он на amd видюхе тоже работал,
кароче у другалёчка просто текстура с шейдером становиться прозрачной, при любом цвете шейдера, шейдер пиксельный, просто возвращает цвет(заливает текстуру цветом одним кароче)
вот как я делаю шейдер:
байтики всё правильные, у меня работает, на amd - нет
думал сначала не работает из-за компиляции шейдера, убрал её, заменив байтиками этими, всё равно
|
|
|

19.08.2022, 15:50
|
|
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами:
6603505
Репутация:
183
|
|
Код шейдера где?
|
|
|

19.08.2022, 16:21
|
|
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами:
4633764
Репутация:
148
|
|
Сообщение от SR_team
Код шейдера где?
C++:
Код:
float4 value
;
float4
main
(
)
:
COLOR
{
return
value
;
}
но я его скомпилировал и в байты перевел, было вот так, но тоже не работало(на amd, на nvidia работало, видеокарта у него radeon hd 5750):
C++:
Код:
HRESULT
generateShader
(
IDirect3DPixelShader9
*
*
pShader
)
{
char
szShader
[
512
]
;
ID3DXBuffer
*
pShaderBuffer
=
nullptr
;
strcpy
(
szShader
,
"float4 value; float4 main() : COLOR { return value; }"
)
;
if
(
FAILED
(
D3DXCompileShader
(
szShader
,
strlen
(
szShader
)
,
0
,
0
,
"main"
,
D3DXGetPixelShaderProfile
(
DEVICE
)
,
D3DXSHADER_SKIPVALIDATION
,
&
pShaderBuffer
,
0
,
0
)
)
)
return
E_FAIL
;
if
(
FAILED
(
DEVICE
->
CreatePixelShader
(
(
const
DWORD
*
)
pShaderBuffer
->
GetBufferPointer
(
)
,
pShader
)
)
)
return
E_FAIL
;
return
S_OK
;
}
протестил ещё у одного друга на amd у него amd rx560, тоже не работает
|
|
|

19.08.2022, 17:56
|
|
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами:
6603505
Репутация:
183
|
|
Сообщение от loganhackerdff
C++:
Код:
float4 value
;
float4
main
(
)
:
COLOR
{
return
value
;
}
но я его скомпилировал и в байты перевел, было вот так, но тоже не работало(на amd, на nvidia работало, видеокарта у него radeon hd 5750):
C++:
Код:
HRESULT
generateShader
(
IDirect3DPixelShader9
*
*
pShader
)
{
char
szShader
[
512
]
;
ID3DXBuffer
*
pShaderBuffer
=
nullptr
;
strcpy
(
szShader
,
"float4 value; float4 main() : COLOR { return value; }"
)
;
if
(
FAILED
(
D3DXCompileShader
(
szShader
,
strlen
(
szShader
)
,
0
,
0
,
"main"
,
D3DXGetPixelShaderProfile
(
DEVICE
)
,
D3DXSHADER_SKIPVALIDATION
,
&
pShaderBuffer
,
0
,
0
)
)
)
return
E_FAIL
;
if
(
FAILED
(
DEVICE
->
CreatePixelShader
(
(
const
DWORD
*
)
pShaderBuffer
->
GetBufferPointer
(
)
,
pShader
)
)
)
return
E_FAIL
;
return
S_OK
;
}
протестил ещё у одного друга на amd у него amd rx560, тоже не работает
Попробуй такой шейдер использовать:
C-like:
Код:
float4 value
;
float4
main
(
float2 tc
:
TEXCOORD0
)
:
COLOR
{
return
value
;
}
А вообще зачем тебе шейдер, если ты просто цвет задаешь?При рендере же можно указать, что текстура должна смешиваться с определенным цветом
И еще, какую версию D3DXGetPixelShaderProfile(DEVICE) возвращает? Мб там что-то nvidia специфичное? Попробуй указать "ps_3_0" - это самая новая версия шейдеров, которую поддерживает DX9
|
|
|

19.08.2022, 17:59
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Пиксельный шейдер 2.0 используй, а не 3.0
|
|
|

19.08.2022, 17:59
|
|
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами:
4633764
Репутация:
148
|
|
Сообщение от SR_team
Попробуй такой шейдер использовать:
C-like:
Код:
float4 value
;
float4
main
(
float2 tc
:
TEXCOORD0
)
:
COLOR
{
return
value
;
}
А вообще зачем тебе шейдер, если ты просто цвет задаешь?При рендере же можно указать, что текстура должна смешиваться с определенным цветом
нуу, я пробовал через mesh->material.color но не работало, типа крашило если вид от первого лица включать и ещё текстура вся черная, цвет не изменялся
спасибо, щас попробую
|
|
|

19.08.2022, 18:02
|
|
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами:
6603505
Репутация:
183
|
|
Сообщение от kin4stat
Пиксельный шейдер 2.0 используй, а не 3.0
На ARZ все шейдеры с 3.0 собираются и работают нормально на AMD
|
|
|

19.08.2022, 18:05
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Если нужен тест на rx 580 то могу помочь
|
|
|

19.08.2022, 18:06
|
|
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами:
4633764
Репутация:
148
|
|
Спасибо огромное, с пиксельным шейдером 2.0 заработало, и ещё, лучше хукать не RwSetTexture,а objectLighting (005DA6A0)
там можно будет проверить альфа цвет материала, он 0 если стекло открыто сервером
Сообщение от SR_team
На ARZ все шейдеры с 3.0 собираются и работают нормально на AMD
видимо в D3DXGetPixelShaderProfile ошибка
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|