Другое С/С++ Вопрос - Ответ

loganhackerdff

Известный
868
520
Кстати выше - не самое лучшее решение. Лучше хукать DrawIndexedPrimitive в пайплайне рендера педов(0x761142) и выставлять цвет пикселей через константы или пиксельный шейдер. Пример:
C:
sampler2D tex0 : register(s0);
extern float3 dy: register(c0);

float4 main(float2 tc : TEXCOORD0) : COLOR
{
    return tex2D(tex0, tc) * float4(dy[0], dy[1], dy[2], 1.0);
}
C++:
{
    HRSRC hsrc = FindResourceW(reinterpret_cast<HMODULE>(hmdl), MAKEINTRESOURCEW(IDR_HLSL2), L"HLSL");
    PVOID shader = LockResource(LoadResource(reinterpret_cast<HMODULE>(hmdl), hsrc));
    pDevice->CreatePixelShader(reinterpret_cast<DWORD*>(shader), &pPixelShader);
}
C++:
pDevice->SetPixelShader(pPixelShader);
// Rainbow lol
if (bTact) {
    HSVtoRGB(RGB[0], RGB[1], RGB[2], color[0], color[1], color[2]);
    color[0] += 2.0f;
    if (color[0] >= 360.0f) color[0] -= 360.0f;
    bTact = false;
}
pDevice->SetPixelShaderConstantF(0, RGB, 1);
fpHkDrawIndexedPrimitive(pDevice, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);
pDevice->SetPixelShader(nullptr);
return D3D_OK;
а как понять что рисуется полигон из модели педа
 

loganhackerdff

Известный
868
520
Кстати выше - не самое лучшее решение. Лучше хукать DrawIndexedPrimitive в пайплайне рендера педов(0x761142) и выставлять цвет пикселей через константы или пиксельный шейдер. Пример:
C:
sampler2D tex0 : register(s0);
extern float3 dy: register(c0);

float4 main(float2 tc : TEXCOORD0) : COLOR
{
    return tex2D(tex0, tc) * float4(dy[0], dy[1], dy[2], 1.0);
}
C++:
{
    HRSRC hsrc = FindResourceW(reinterpret_cast<HMODULE>(hmdl), MAKEINTRESOURCEW(IDR_HLSL2), L"HLSL");
    PVOID shader = LockResource(LoadResource(reinterpret_cast<HMODULE>(hmdl), hsrc));
    pDevice->CreatePixelShader(reinterpret_cast<DWORD*>(shader), &pPixelShader);
}
C++:
pDevice->SetPixelShader(pPixelShader);
// Rainbow lol
if (bTact) {
    HSVtoRGB(RGB[0], RGB[1], RGB[2], color[0], color[1], color[2]);
    color[0] += 2.0f;
    if (color[0] >= 360.0f) color[0] -= 360.0f;
    bTact = false;
}
pDevice->SetPixelShaderConstantF(0, RGB, 1);
fpHkDrawIndexedPrimitive(pDevice, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);
pDevice->SetPixelShader(nullptr);
return D3D_OK;
я сделал шейдер с расширение .hlsl как ресурс его вроде добавил
но код крашит
C++:
        HRSRC hsrc = FindResourceW(g::instance, MAKEINTRESOURCEW(101), L"HLSL");
        PVOID shader = LockResource(LoadResource(g::instance, hsrc));
        g::pDXDevice->CreatePixelShader(reinterpret_cast<DWORD*>(shader), &m_d3d9Shader);

В дебугере hsrc = NULL shader тоже
ошибки ещё сыпит если шейдер в проекте в сборке
 

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,749
4,851
я сделал шейдер с расширение .hlsl как ресурс его вроде добавил
но код крашит
C++:
        HRSRC hsrc = FindResourceW(g::instance, MAKEINTRESOURCEW(101), L"HLSL");
        PVOID shader = LockResource(LoadResource(g::instance, hsrc));
        g::pDXDevice->CreatePixelShader(reinterpret_cast<DWORD*>(shader), &m_d3d9Shader);

В дебугере hsrc = NULL shader тоже
ошибки ещё сыпит если шейдер в проекте в сборке
PixelShader 2.0 ставь в настройках компилятора
 
  • Нравится
Реакции: loganhackerdff

loganhackerdff

Известный
868
520
я сделал шейдер с расширение .hlsl как ресурс его вроде добавил
но код крашит
C++:
        HRSRC hsrc = FindResourceW(g::instance, MAKEINTRESOURCEW(101), L"HLSL");
        PVOID shader = LockResource(LoadResource(g::instance, hsrc));
        g::pDXDevice->CreatePixelShader(reinterpret_cast<DWORD*>(shader), &m_d3d9Shader);

В дебугере hsrc = NULL shader тоже
ошибки ещё сыпит если шейдер в проекте в сборке
шейдер не компилиться, онлайн компилятором тоже
 

loganhackerdff

Известный
868
520
в визуалке dxc.exe вернуло 1 в онлайн компиляторе
1629126846203.png

я не шарю игрался только с opengl шейдерами
 

Musaigen

shitposter
Проверенный
1,657
1,472
Последнее редактирование:
  • Нравится
Реакции: loganhackerdff

loganhackerdff

Известный
868
520
Ошибка при компиляции в визуалке...
бля
ландно, тогда почему старые чамсы, рисованые через метод не дружат с CD3DFont из sobeit,
и появляется такая хуйня
1629128112333.png
 
Последнее редактирование:
  • Ха-ха
Реакции: Musaigen

Musaigen

shitposter
Проверенный
1,657
1,472
бля
ландно, тогда почему старые чамсы, рисованые через метод не дружат с CD3DFont из sobeit,
и появляется такая хуйня
Отрисовка педа может сбрасывать текстуру или что-то в этом вроде. Ты скажешь какая у тебя ошибка при компиляции шейдера?
 

loganhackerdff

Известный
868
520
Отрисовка педа может сбрасывать текстуру или что-то в этом вроде. Ты скажешь какая у тебя ошибка при компиляции шейдера?
ну щас я разберусь как его компилировать но у меня в ошибках просто "dxc.exe вернул 1"
 

Musaigen

shitposter
Проверенный
1,657
1,472
сначала
Посмотреть вложение 110372
Потом после шаманизма
Посмотреть вложение 110373
Типо вот файл:
Посмотреть вложение 110374
мб я тупой и не то расширение файла поставил
может просто файл в байты перевести и подгрузить так?
Выставь в свойствах шейдера "Шейдер пикселей /ps" и Shader Model 2.0
 
  • Влюблен
Реакции: loganhackerdff