Как правильно настроить глубину

Версия Minecraft
1.6.4
355
2
17
В общем отрисовываю имя над Entity, если не использовать тени в тексте, то все норм. Если использовать тени, то вот такие артефакты
1569590892740.png

Если перед текстом отключить маску, GL11.glDepthMask(false); то артефакты пропадают, но текст уходит за NPC (маску в конце включаю, иначе ломаются скины).

1569590796152.png

Без теней ванильными методами все норм. Как быть?
 
Тень как делаешь? Два раза вызываешь рендер текста? Если да, то расстояние между текстами в глубину больше сделай
 
Попробуй два раза рисовать: сначала тень, потому лицевой текст) Скорее всего там под капотом та же проблема: рисуется на одном и том же месте
 
Да но в GUI этот текст рисуется нормально. Это именно в мире такой косяк. А рисовать два раза немного накладно, ранее рисовал таблицы в мире с утилой Slick, и как оказалось, рисовать шрифт в майнкрафте весьма сильно бьет по нагрузке.
 
А рисовать два раза немного накладно
Там под капотом эта тень не иначе, как двумя разами рисуется. Какая разница, твой код это сделает или чужой?
~~~
Хотя, возможно, там какой-то хитрожопый шейдер или постпроцессинг. Хотя, это маловероятно, с учетом того, что рендер портала в край сделан на костылях
 
Я конкретно не вникал в методы майна и OpenGl, но по крайне мере таблица с тенями ванильная лучше оптимизирована чем та же таблица с двойным шрифтом (тень на фоне) через слак утил.

Мне нужно понять как через эти маски и глубину выставить нормальный приоритет, чтобы оно за НПС не рисовалось
 
Последнее редактирование:
Щте простите?
Если так, попробуй попросту рисовать текст 2 раза(КОСТЫЛЬ),но в разных Z позициях, их ты можешь отодвинуть гл11
GL11.glTranslatef(0.0F, 0.0F, Zpos);
Zpos на свое, зеленое вперед темнозеленое назад.
 
Я же писал, что ранее делал так, этот костыль оставлю прям совсем на крайний вариант.
Мне нужно конкретно разобраться в этих

Java:
GL11.glDepthMask(false);
GL11.glDisable(GL11.GL_DEPTH_TEST);

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

рисовать текст 2 раза(КОСТЫЛЬ),но в разных Z позициях
Дублирование ответа, кхем
 
А это одно и тоже вообще-то)
Одно и то же:
я предложил нарисовать тень
два раза рисовать: сначала тень
Одно и то же:
после переместить позицию с помощью гл11 и потом рисовать мейн текст
расстояние между текстами в глубину больше сделай
потому лицевой текст
 
В общем попробовал сделать принципом передний фон-задний фон, и вылезла еще одна проблема.
Как правило цвет тени, это затемненный цвет основного текста. В принципе можно получить затемненную версию осного цвета и передавать её в параметр рендера, только вот в тексте цвета могут меняться и в момент этой смены последующеё затемнение ломается..
 
А это одно и тоже вообще-то)
Одно и то же:


Одно и то же:
Wikipedia:
x — расстояние от точки P до плоскости yz
y — расстояние от точки P до плоскости xz
z — расстояние от точки P до плоскости xy

z это не глубина, а значит уже не одно и тоже.
Тоже самое, скажешь что d это отверстие, а D это вал и тебе бы кирпич прилетел бы в окно
 
Текст рисуется "в плоскости экрана". Это значит, что матрица трансформации у него такая же, как у плоскости экрана(либо отличается на смещение). Это значит, что оси x,y лежат в этой плоскости, а z ортогональна ей. Это значит, что ось z задает глубину в данном случае
 
Назад
Сверху