Тема: Проблема с шейдерами.
Japan1337
- Просмотр профиля
- Сообщения форума
- Личное сообщение
- Репутация
Новичок
Сообщений 4
Регистрация 04.10.2015
0  
Поблагодарил(а) 0 Получено благодарностей: 0 (сообщений: 0).
Проблема с шейдерами.
В общем, хочу поиграть со шейдерами , не выходит. После того как выбираю шейдер майнкрафт попросту либо крашится либо без текстур. (Либо розовый цвет экрана либо чёрный.) Т.е шейдеры как-бы работают а как — бы нет! Прошу помощи. Заранее спасибо.
21.02.2016, 14:42 #2
duracel2
- Просмотр профиля
- Сообщения форума
- Личное сообщение
- Репутация
Новичок
Ваш статус Тройка две двойки
Сообщений 21
Любимые моды IC2
Любимый монстр Azazin Kreet
Регистрация 08.08.2012
Адрес Новосибирск
0  
Поблагодарил(а) 5 Получено благодарностей: 10 (сообщений: 9).
А вы установили шейдеры правильно? И подходят ли шейдеры под версию майнкрафта?
У тебя какой компьютер?
Возможно, проблема с шейдерами. Если не понял, переведу, ты мог скачать неправильные шейдеры, в результате чего крашится маин.
Тебе же написал маин) «обновите драйвер видеокарты». А без шейдеров нормально играется, без крашей?
А пробовал другие шейдеры поставить?
Когда крашнулся маин, что потом? Он закрылся и все? Или же ошибка, а потом кнопка «Выход из игры»?
Сообщение от Hiler1999
Отладочную консоль при входе на сервер включи, и скинь сюда под спойлер, что она пишет, так проще будет разобраться.
Дабы игрок понял о чем речь.
Если игрок знает об этом, удалю пост.
Последний раз редактировалось CBETLbIU; 21.02.2016 в 15:44 .
21.02.2016, 14:43 #3
Japan1337
- Просмотр профиля
- Сообщения форума
- Личное сообщение
- Репутация
Новичок
Сообщений 4
Регистрация 04.10.2015
0  
Поблагодарил(а) 0 Получено благодарностей: 0 (сообщений: 0).
Сообщение от duracel2
А вы установили шейдеры правильно? И подходят ли шейдеры под версию майнкрафта?
Всё делал как нужно. Т.е сервера Hi-Tech , сделал всё как писал ранее фрозор.
Сообщение от duracel2
Возможно, проблема с шейдерами. Если не понял, переведу, ты мог скачать неправильные шейдеры, в результате чего крашится маин.
Дрова вчера обновил
Сообщение от duracel2
Тебе же написал маин) «обновите драйвер видеокарты». А без шейдеров нормально играется, без крашей?
Дрова обновлял вчера[2]. Без шейдов 150+ фпс.
Сообщение от duracel2
А пробовал другие шейдеры поставить?
Штук 100 уже перепробывал. В итоге 80% краш.
Сообщение от duracel2
Когда крашнулся маин, что потом? Он закрылся и все? Или же ошибка, а потом кнопка «Выход из игры»?
Сообщение от duracel2
У тебя какой компьютер?
Ноут, 4 ядра 6гб озу. nvidia , не помню какая. Ну гта 5 тянет в 60 фпс на минималках.
http://c2n.me/3uCANSC
Последний раз редактировалось Japan1337; 21.02.2016 в 15:50 .
21.02.2016, 15:28 #4
Hiler1999
- Просмотр профиля
- Сообщения форума
- Личное сообщение
- Репутация
- Домашняя страница
Наблюдатель
Ваш статус Простите за моё сверхмерное ЧСВ и бредовые идеи с мыслями.
Сообщений 65
Cервер PowerCraft.
Любимые моды Industrial, Thermal Expansion, Ars Magica 2.
Любимый монстр nikilands.
Регистрация 07.04.2014
Адрес Россия, Башкортостан.
-1  
Поблагодарил(а) 85 Получено благодарностей: 15 (сообщений: 8).
Отладочную консоль при входе на сервер включи, и скинь сюда под спойлер, что она пишет, так проще будет разобраться.
21.02.2016, 15:41 #5
cheald
- Просмотр профиля
- Сообщения форума
- Личное сообщение
- Репутация
Модератор форума
Ваш статус По всем вопросам в дискорд
Сообщений 2,310
Регистрация 01.10.2013
Адрес DC: bezbashn
46  
Поблагодарил(а) 45 Получено благодарностей: 1,819 (сообщений: 686).
Боже. duracel тут просто посты набивает.
Лист возможных проблем:
1. Видеокарта не поддерживает шейдеры из за высоких настроек игры. Снизь до минимума.
2. Обнови DirectX и OpenGL.
Прикрепи скрин текущих настроек в игре и свойств системы(В Компьютере ПКМ и Свойства).
UPD: Выдели 1024 Мб памяти/уменьши размер окна игры.
Последний раз редактировалось cheald; 21.02.2016 в 16:02 .
DC: bezbashn
Ваш проводник в мир Minecraft
Дизайнер, квестодел и просто сладкая булочка
Что делать если не работают шейдеры
Ваш браузер устарел, и поэтому некоторые важные функции этого сайта могут не работать. Пожалуйста, обновитесь то более современного браузера. 🙁
Не работают шейдеры вообще
Ребят вот проблемка. Когда запускаю майнкрафт с модом ядром GLSL у меня просто вылетает майн. Будь что с OptiFine Будь что без него. Без шейдеров игра идеально работает. Спасайте, уже месяц не могу найти ответа.\r\n\r\nПараметры компа:\r\nПроцессор:
KiritoSwordsmen
Помогите пожалуйста
Многие говорили, что ошибка в том, что я мало выделил ОЗУ, но я выделил 4 ГБ из 8 возможных
Также хар. компа:
Процессор: Intel(R) Core(TM) i5-3470 CPI @ 3.20 GHz
ОЗУ: 8 ГБ
Видеокарта: AMD Radeon HD 7800 Series.
У меня даже Alien Isolation и GTA 5 тянет, а майн с шейдерами нет -_-
Сообщение отредактировал KiritoSwordsmen 9 января 2016 — 18:53
Миссии:
-1 новость на главной
-5 новостей на главной
-стать ПХЛ(хотя мне до этого далеко-далеко)
-Сделать текстур-пак
-Сделать мод
-Сделать клиент
-Нарисовать Юи из K-ON!
-Прочитать всю мангу мир в котором не существует понятия грязные штучки
#1 | 9 января 2016 — 18:31
Reporter
ТруЪ Олдфаги-с
Звание: Бесценный нехолоп
Если это то о чём я думал, то мы с тобой братья по проблеме У меня та же проблема, у тебя есть мод GLGLS Shaders Mod?
Сообщение отредактировал Reporter 9 января 2016 — 19:29
I’m Houston, I’m ready for any problem! ©
#2 | 9 января 2016 — 19:28
romon2013
Звание: Любитель понажимать кнопки
KiritoSwordsmen,
Даже не знаю почему
Майн написан на Java поэтому может лагать даже без шейдеров на топовых компах.
Цели:1)Набрать +100 репы2)Получить группу Олдфаги
3)Сделать 60 новостей
#3 | 9 января 2016 — 20:08
KiritoSwordsmen
Reporter,
Да стоит. У меня просто вылетает до показа картинки Mojang.
Миссии:
-1 новость на главной
-5 новостей на главной
-стать ПХЛ(хотя мне до этого далеко-далеко)
-Сделать текстур-пак
-Сделать мод
-Сделать клиент
-Нарисовать Юи из K-ON!
-Прочитать всю мангу мир в котором не существует понятия грязные штучки
#4 | 9 января 2016 — 20:35
Reporter
ТруЪ Олдфаги-с
Звание: Бесценный нехолоп
Цитата: KiritoSwordsmen
У меня просто вылетает до показа картинки Mojang.
Нет, ты не мой брат , просто у меня вылетает майн, когда запускаю шейдеры и мир. Причём никакого лога или ошибки не выдаёт. Просто *хлоп* и всё Не знаю, проверь, может твоей видео карте противопоказаны шейдеры?
I’m Houston, I’m ready for any problem! ©
#5 | 9 января 2016 — 21:47
KiritoSwordsmen
Reporter,
С видеокартой все нормально, на 8 винде раньше работали. А теперь даже и не знаю что делать
Reporter,
Кстати, первое время была такая же ошибка как и у тебя
Сообщение отредактировал KiritoSwordsmen 9 января 2016 — 21:53
Миссии:
-1 новость на главной
-5 новостей на главной
-стать ПХЛ(хотя мне до этого далеко-далеко)
-Сделать текстур-пак
-Сделать мод
-Сделать клиент
-Нарисовать Юи из K-ON!
-Прочитать всю мангу мир в котором не существует понятия грязные штучки
#6 | 9 января 2016 — 21:52
KiritoSwordsmen
УРА Я ПОНЯЛ.
Короче, (только 1.8.8, как я знаю) можно скачать Optifine HD G9 Ultra. Там встроенный мод на шейдеры! ЕЙ!
Миссии:
-1 новость на главной
-5 новостей на главной
-стать ПХЛ(хотя мне до этого далеко-далеко)
-Сделать текстур-пак
-Сделать мод
-Сделать клиент
-Нарисовать Юи из K-ON!
-Прочитать всю мангу мир в котором не существует понятия грязные штучки
#7 | 10 января 2016 — 02:41
Reporter
ТруЪ Олдфаги-с
Звание: Бесценный нехолоп
KiritoSwordsmen,
Скинь ссылочку! Прошу! У меня тоже шейдеры не робят
I’m Houston, I’m ready for any problem! ©
#8 | 10 января 2016 — 13:32
hbde
Братан попробуй другую версию я пытался зайти в шейдерами на 1.12.2 и не получилось потом зашел с 1.12 и получилось решил перезайти и опять ошибка хз почему еще можно попробывать скачать мод пак и оставить только шейдеры
Сообщение отредактировал hbde 7 сентября 2021 — 18:11
#9 | 7 сентября 2021 — 18:04
Mr Blue cat
Просто хорошие люди
hbde,
Вот это скорость! Ты наверно печатал очень быстро! А тебя не смущает то что это тема из 2016 и она решена?
DXYVAD нравится это сообщение.
я пароль вспомнил
#10 | 8 сентября 2021 — 07:10
Статистика форума
Сейчас онлайн: 20
Создано тем 13568 Написано сообщений 829672 Пользователей 370883 Новый участник nIVERR
Администраторы | Главные редакторы | Модератор | Дедушки | Журналисты | HENTAI BOY | Goldфаги | Журналисты-олдфаги | ТруЪ Олдфаги-с | ТруЪ Плагинщик | Олдфаги | true Художник | Модератор бездны | Картоделы | XXXL ПХЛ | Просто хорошие люди | Посетители | Новички
Последние сообщения с форума
Просмотров: 130
Ответов: 2
Автор: cat1967
Просмотров: 24
Ответов: 0
Автор: nIVERR
Просмотров: 104
Ответов: 1
Автор: cat1967
Просмотров: 644
Ответов: 20
Автор: cat1967
Просмотров: 115
Ответов: 2
Не работают шейдеры в Майнкрафт 1.12.2
Скачивал много шейдеров
Из них «нормально» работал только kuda shaders, но на текстурах были странные полосы и не было видно руки персонажа. Остальные же шейдеры вообще не работали. Либо был чёрный экран либо не было неба и освещения, только качалась листва трава и вода. Но самих солнечных лучей, бликов, теней не было. Хоть динамическое освещение и небо были включены в игре. Шейдеры выдавали ошибку composite. Как решить проблему и есть ли мод для нормальной их работы? Я запускал шейдеры через оптифайн.
Лучший ответ
короче скачай в лаунчере 1.12.2forge качаешь мод https://minecraft-inside.ru/mods/9621-glsl-shaders-mod.html кидаешь в папку модс заходишь через 1.12.2forge и всё заходишь выбираешь шейдры
Остальные ответы
Не работают шейдеры в OpenGL
если кратко, то созданые шейдеры никак не влияют на результат, попросту не работают. Окно WinApi, openGl загружает GLAD, контекс создаю сам, версия 3.3, ошибок при создании контекста нет, все отлично рисуеться, но шейдеры ничего не делают. Изображение черное, при попытке поиграть со значениями в вершинном шейдере изображение остаеться статично, если убрать весь полезный код из шейдера, результат тот же. При загрузкt версии 4.6 изображение белое. Где можно искать ошибку? Цикл рисования.
const char* vertexShaderSource = "#version 330 core\n" "layout (location = 0) in vec3 aPos;\n" "out vec4 vertexColor;\n" "void main()\n" "\0"; const char* fragmentShaderSource = "#version 330 core\n" "out vec4 FragColor;\n" "in vec4 vertexColor;\n" "void main()\n" "\n\0"; void update(engine::window::Window* _pWnd) < unsigned int shaderProgram = 0; unsigned int VBO = 1, VAO = 1, EBO = 1; engine::events::Event ev; _pWnd->PollEvent(ev); if (ev.IsPressed(VK_ESCAPE)) _pWnd->~Window(); while (1) < int a = ev.GetLastEvent(); if (a == 0) break; if (a == WM_CREATE) < glViewport(0, 0, 800, 600); int success; unsigned int vertexShader = glCreateShader(GL_VERTEX_SHADER); glShaderSource(vertexShader, 1, &vertexShaderSource, NULL); glCompileShader(vertexShader); glGetShaderiv(vertexShader, GL_COMPILE_STATUS, &success); if (!success) exit(101); unsigned int fragmentShader = glCreateShader(GL_FRAGMENT_SHADER); glShaderSource(fragmentShader, 1, &fragmentShaderSource, NULL); glCompileShader(fragmentShader); glGetShaderiv(fragmentShader, GL_COMPILE_STATUS, &success); if (!success) exit(102); shaderProgram = glCreateProgram(); glAttachShader(shaderProgram, vertexShader); glAttachShader(shaderProgram, fragmentShader); glLinkProgram(shaderProgram); glGetProgramiv(shaderProgram, GL_LINK_STATUS, &success); if (!success) exit(103); glGenVertexArrays(1, &VAO); glGenBuffers(1, &VBO); glGenBuffers(1, &EBO); glBindVertexArray(VAO); glBindBuffer(GL_ARRAY_BUFFER, VBO); glBufferData(GL_ARRAY_BUFFER, vertices1.size()*4, &vertices1[0], GL_STATIC_DRAW); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO); glBufferData(GL_ELEMENT_ARRAY_BUFFER, indices1.size()*4, &indices1[0], GL_STATIC_DRAW); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0); glEnableVertexAttribArray(0); glBindBuffer(GL_ARRAY_BUFFER, 0); glBindVertexArray(0); >> long errr = glGetError(); if (errr) exit(errr); glClearColor(0.2f, 0.3f, 0.3f, 1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glUseProgram(shaderProgram); glBindVertexArray(VAO); glDrawElements(GL_TRIANGLES, indices1.size(), GL_UNSIGNED_INT, 0); glFlush(); SwapBuffers(hdc1); >
Создание контекста.
void init_opengl(HDC real_dc) < init_opengl_extensions(); int pixel_format_attribs[] = < WGL_DRAW_TO_WINDOW_ARB, GL_TRUE, WGL_SUPPORT_OPENGL_ARB, GL_TRUE, WGL_DOUBLE_BUFFER_ARB, GL_TRUE, WGL_ACCELERATION_ARB, WGL_FULL_ACCELERATION_ARB, WGL_PIXEL_TYPE_ARB, WGL_TYPE_RGBA_ARB, WGL_COLOR_BITS_ARB, 32, WGL_DEPTH_BITS_ARB, 24, WGL_STENCIL_BITS_ARB, 8, 0 >; int pixel_format; UINT num_formats; wglChoosePixelFormatARB(real_dc, pixel_format_attribs, 0, 1, &pixel_format, &num_formats); if (!num_formats) < exit(4); >PIXELFORMATDESCRIPTOR pfd; DescribePixelFormat(real_dc, pixel_format, sizeof(pfd), &pfd); if (!SetPixelFormat(real_dc, pixel_format, &pfd)) < exit(3); >int gl33_attribs[] = < WGL_CONTEXT_MAJOR_VERSION_ARB, 3, WGL_CONTEXT_MINOR_VERSION_ARB, 3, WGL_CONTEXT_PROFILE_MASK_ARB, WGL_CONTEXT_CORE_PROFILE_BIT_ARB, 0, >; HGLRC gl33_context = wglCreateContextAttribsARB(real_dc, 0, gl33_attribs); if (!gl33_context) < exit(2); >if (!wglMakeCurrent(real_dc, gl33_context)) < exit(1); >gladLoadGL(); >
Отслеживать
Тимур Крамар
задан 5 ноя 2022 в 22:22
Тимур Крамар Тимур Крамар
68 5 5 бронзовых знаков
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
UPD: Собрал у себя рабочее «На коленке»(качество кода — очень так себе но для запуска и взять что-то для себя — ок) тестовое решение, шейдеры работают нормально. можете прям собрать и попробывать, только 8 строчке — сделайте свой include к GLAD и вот вам tree.obj.
Предлагаю вам собрать решение для начала, а потом смотреть пункты для чуть более детального понимания.
Давайте пойдем по пунктам, что предлагаю поменять. в формате ваших функций более менее, если что не понятно, то пишите в каком пункте и будет разбирать
- Создаем фейковое окно и там инициализируем opengl.
ATOM registerClass(HINSTANCE hInstance) < WNDCLASSEX wcex; ZeroMemory(&wcex, sizeof(wcex)); wcex.cbSize = sizeof(wcex); wcex.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; wcex.lpfnWndProc = WindowProcedure; wcex.hInstance = hInstance; wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.lpszClassName = "Core"; return RegisterClassEx(&wcex); >void init_opengl_extensions() < windowClass = MAKEINTATOM(registerClass(hInstance)); if (windowClass == 0) < showMessage("registerClass() failed."); return 1; >/// Создаем временное окно /// HWND fakeWND = CreateWindow( windowClass, "Fake Window", style, 0, 0, 1, 1, NULL, NULL, hInstance, NULL); HDC fakeDC = GetDC(fakeWND); // Device Context PIXELFORMATDESCRIPTOR fakePFD; ZeroMemory(&fakePFD, sizeof(fakePFD)); fakePFD.nSize = sizeof(fakePFD); fakePFD.nVersion = 1; fakePFD.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER; fakePFD.iPixelType = PFD_TYPE_RGBA; fakePFD.cColorBits = 32; fakePFD.cAlphaBits = 8; fakePFD.cDepthBits = 24; const int fakePFDID = ChoosePixelFormat(fakeDC, &fakePFD); if (fakePFDID == 0) < showMessage("ChoosePixelFormat() failed."); return 1; >if (SetPixelFormat(fakeDC, fakePFDID, &fakePFD) == false) < showMessage("SetPixelFormat() failed."); return 1; >HGLRC fakeRC = wglCreateContext(fakeDC); // Rendering Contex if (fakeRC == 0) < showMessage("wglCreateContext() failed."); return 1; >if (wglMakeCurrent(fakeDC, fakeRC) == false) < showMessage("wglMakeCurrent() failed."); return 1; >/// получаем указатели на функции или вызывает opengl loader PFNWGLCHOOSEPIXELFORMATARBPROC wglChoosePixelFormatARB = nullptr; wglChoosePixelFormatARB = reinterpret_cast(wglGetProcAddress("wglChoosePixelFormatARB")); if (wglChoosePixelFormatARB == nullptr) < showMessage("wglGetProcAddress() failed."); return 1; >PFNWGLCREATECONTEXTATTRIBSARBPROC wglCreateContextAttribsARB = nullptr; wglCreateContextAttribsARB = reinterpret_cast(wglGetProcAddress("wglCreateContextAttribsARB")); if (wglCreateContextAttribsARB == nullptr) < showMessage("wglGetProcAddress() failed."); return 1; >if (config.windowed == true) < adjustSize(); center(); >>
- Вот так создаем окно, поля по типу позиции/размера делать как удобно
//// Создаем новое реальное окно /// WND = CreateWindow( windowClass, "OpenGL Window", // class name, window name style, // styles config.posX, config.posY, // posx, posy. If x is set to CW_USEDEFAULT y is ignored config.width, config.height, // width, height NULL, NULL, // parent window, menu hInstance, NULL); // instance, param DC = GetDC(WND); const int pixelAttribs[] = < WGL_DRAW_TO_WINDOW_ARB, GL_TRUE, WGL_SUPPORT_OPENGL_ARB, GL_TRUE, WGL_DOUBLE_BUFFER_ARB, GL_TRUE, WGL_PIXEL_TYPE_ARB, WGL_TYPE_RGBA_ARB, WGL_ACCELERATION_ARB, WGL_FULL_ACCELERATION_ARB, WGL_COLOR_BITS_ARB, 32, WGL_ALPHA_BITS_ARB, 8, WGL_DEPTH_BITS_ARB, 24, WGL_STENCIL_BITS_ARB, 8, WGL_SAMPLE_BUFFERS_ARB, GL_TRUE, WGL_SAMPLES_ARB, 4, 0 >; int pixelFormatID; UINT numFormats; const bool status = wglChoosePixelFormatARB(DC, pixelAttribs, NULL, 1, &pixelFormatID, &numFormats); if (status == false || numFormats == 0) < showMessage("wglChoosePixelFormatARB() failed."); return 1; >PIXELFORMATDESCRIPTOR PFD; DescribePixelFormat(DC, pixelFormatID, sizeof(PFD), &PFD); SetPixelFormat(DC, pixelFormatID, &PFD); const int major_min = 4, minor_min = 0; const int contextAttribs[] = < WGL_CONTEXT_MAJOR_VERSION_ARB, major_min, WGL_CONTEXT_MINOR_VERSION_ARB, minor_min, WGL_CONTEXT_PROFILE_MASK_ARB, WGL_CONTEXT_CORE_PROFILE_BIT_ARB, WGL_CONTEXT_FLAGS_ARB, WGL_CONTEXT_DEBUG_BIT_ARB, 0 >; RC = wglCreateContextAttribsARB(DC, 0, contextAttribs); if (RC == NULL) < showMessage("wglCreateContextAttribsARB() failed."); return 1; >wglMakeCurrent(NULL, NULL); wglDeleteContext(fakeRC); ReleaseDC(fakeWND, fakeDC); DestroyWindow(fakeWND); if (!wglMakeCurrent(DC, RC)) < showMessage("wglMakeCurrent() failed."); return 1; >/// Запускаем GLAD gladLoadGL(); SetWindowText(WND, reinterpret_cast(glGetString(GL_VERSION))); ShowWindow(WND, nCmdShow);
- Ваш main будет выглядеть как — то так.
int __stdcall wWinMain(HINSTANCE hInstance, HINSTANCE hPrev, wchar_t* pCmdLine, int nCmdShow) < engine::window::Window ab; ///// Сначала подготавливаем opengl - шаг 1 ///// init_opengl(); //// создаем реально окно - шаг 2 ab.Create(L"Window", engine::math::Vector2i(800, 600)); //if (FAILED(engine::render::InitContext(ab.GetDescriptor()))) return EXIT_FAILURE; UpdateWindow(ab.GetDescriptor()); Load3DObject(L"models\\cat.obj", &vertices1, &indices1); ab.StartLoop(nCmdShow, update); return EXIT_SUCCESS; >
Я бы на самом деле объеденил init_opengl() и create() для удобства, так как шаг 1 и 2 взаимосвязаны.
int __stdcall wWinMain(HINSTANCE hInstance, HINSTANCE hPrev, wchar_t* pCmdLine, int nCmdShow) < engine::window::Window ab; ab.setup() /// шаг 1 + шаг 2 UpdateWindow(ab.GetDescriptor()); Load3DObject(L"models\\cat.obj", &vertices1, &indices1); ab.StartLoop(nCmdShow, update); return EXIT_SUCCESS; >
- Собрать шейдер в класс и выполнять его работу не на WM_CREATE а попозже