Low Poly 3D LWJGL Shader Проблема Довідка Java

НіжнийXD

Активний учасник

Зараз я пробую 3D-гру (я знаю). Програмування Я роблю це за допомогою LWJGL та Java. Я зробив свої основи, я можу завантажувати та відтворювати моделі та написав перші шейдери. Я реалізував світло. Поки що все добре. Оскільки я не особливо хороший художник-графік, але також не маю нікого, хто міг би зробити цю роботу за мене, я хочу зробити текстури моделей самостійно. Моя відповідь - низький рівень, дуже легкий у вивченні та не надто складний. Зараз я роблю свої моделі в Blender і надаю їм колір (один колір для всієї моделі). Тепер я хочу зробити текстуру за допомогою своїх шейдерів.

java

Отже, наступна проблема:
Я створив цю низькополігональну сферу в Blender і дав їй рожевий колір для тестування. Але лише один колір для всієї моделі. У Blender кожна вершина має світло, дещо інший колір.
https://prnt.sc/h2piul

Тепер я завантажую цю кульку у свою гру:
Усі сторони, які вказують прямо на світло, виглядають правильно і добре (тільки те, що я тепер використовував не рожевий, а синій):
https://prnt.sc/h2cxuu

У Blender модель виглядає з усіх боків однаково, як у моїй грі, або принаймні майже.
Але у своїй грі я можу обійти м'яч і по сторонах, які не вказують прямо на світло, це виглядає так:
https://prnt.sc/h2cxq9

Наступна проблема сама по собі полягає в тому, що сторінки, які не підлягають безпосередньому опроміненню, також повинні бути темнішими. Але ви вже повинні бачити низькополігональні трикутники, тобто сторони, що не підлягають опроміненню, не відображаються у вигляді плоского шестикутника, а дещо відрізняються темними кольорами.

Ось код шейдера (кожен, хто знайомий з OpenGL/LWJGL, напевно, розпізнає, що тут відбувається).
Якщо хтось має ідею, як це вирішити, було б дуже добре, якби він міг відповісти.