- 476
- 9
- 39
Есть у меня динамичный блок что-то типа скалы можно долбить по нему стаместкой и он меняется в размерах(т.е динамичный) вариаций 2^16 степени.
Т.е я просто модифицирую рендер под свой блок через асм.
Делаю я это проверяя на свой блок state.getBlock == BobrBlock
Далее как обычный рендер только подсовываю свои x,y,z в VertexData для каждой из 4 сторон. Получаю я эти x,y,z на основе коорд блока. Т.е два блока стоящие рядом могут быть похожи, но по сути у них модельки разные.
U,V в VertexData я и пальцем не трогаю.
Т.е я просто модифицирую рендер под свой блок через асм.
Делаю я это проверяя на свой блок state.getBlock == BobrBlock
Далее как обычный рендер только подсовываю свои x,y,z в VertexData для каждой из 4 сторон. Получаю я эти x,y,z на основе коорд блока. Т.е два блока стоящие рядом могут быть похожи, но по сути у них модельки разные.
U,V в VertexData я и пальцем не трогаю.
При сглаживании или шейдерах криво отображается текстурки. Треугольники съезжают.
[/] - это
[/ - рендерится первая часть
/] - вторая рендерится в другом месте или вообще не рендерится.
Таким образом, блок превращается в полупрозрачную пирамиду с вершинами во все стороны.
Меняю x,y,z в VertexData через ASM в остальном отдаю на ванильный рендер.
Без оптифайна выглядит плохо.
Т.е нужны шейдеры хотя бы, но шейдермод несовместим с форджем.
Остаётся оптифайн+фордж.
И тут я уже хз как оно работает и почему так.
Плюс я не могу запатчить оптифайн. Нет деобфусцированной рабочей версии и исходников которые хотя бы запустить в тестовой среде
Как решить я уж каким-нибудь чудом придумаю, главный вопрос почему возникает эта проблема?
P.S Ещё lightmap пересчитываю и color. Иначе от блока остается чёрное пятно.
И ещё вопрос, можно ли как-то подменить в модельке BakedQuad возможно, это решит проблему. Так как тогда я рендер вообще никаким боком трогать не буду. А, нет не прокатит. Мне нужны координаты блока по ним я вычисляю координаты по которым строю стороны