Собственный туман (1.7.10)

То что в майне,туманом особо не назовешь. тык
То,что хочет автор,бесплатно слишком жирно.хотя они могли на скрине схитрить кое как.
 
2I3ujn.png

Чот сомневаюсь что там что-то хитрое. Имхо, просто частицами сделали, да рендерят в отдельную текстурку, ограничивая заполнение альфы до какого-то значения, чтоб туман не становился сплошным.
-- А нет, не рендерят. На некоторых скринах туман полностью закрывает собой всё сзади.
vp0DuG.png

Ну правда очень похоже на говноспрайтики тумана в большом количестве.
 
Фига у тебя зрение. По-хорошему, туман это 1 огромный спрайт. Я кидал статью, в которой всё написано. Даже код дан. Даже на английском
 
Конь под лупой разглядывал :silly:
Думаю что то на VBO или теселятор.
d1a1ab2d58.jpg

[merge_posts_bbcode]Добавлено: 05.06.2016 12:04:14[/merge_posts_bbcode]

*Можно даже по аналогии облаков сделать*
 
По мне, так просто куча небольших плоскостей... Как описал Oldestkon. Это и невооружённый взглядом видно.
А на счёт ссылки, которую дал Хирург в сообщении 21 и вообще относительно всего этого действа, его нужно пихать в тот же Фог эвент? Или каким-то иным макаром подцеплять?
Или вообще не важно, и подойдёт любой эвент, срабатывающий каждый тик?

Просто, чтобы начать щупать OpenGL, нужно, чтобы результат где-то отражался ))) Иначе, я вряд ли что-то пойму (
 
В любом рендере
[merge_posts_bbcode]Добавлено: 05.06.2016 14:10:14[/merge_posts_bbcode]

Так как ты хочешь туман как на скрине то смотри ссылку на тутор от wilah.я его запустил кст
f76QmRa_9P8.jpg
 
Можно сделать так,как описано на схеме у меня
 
А в шейдерах ничего сложного нет. Тем более, в той статье всё дано, ничего самому писать не надо
 
XuPuPG написал(а):
В любом рендере
А в любом рендере, это тут?
Код:
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.Minecraft;
import net.minecraft.client.multiplayer.WorldClient;
import net.minecraftforge.client.IRenderHandler;

@SideOnly(Side.CLIENT)
public class FogRenderer extends IRenderHandler {

    @Override
    public void render(float partialTicks, WorldClient world, Minecraft mc) {}
}

А как его регать?
 
Не бейте )))
Просто пытаюсь понять принцип работы на примере создания обычного тумана:
Код:
@SubscribeEvent
public void fogRender(RenderWorldLastEvent event) {

        GL11.glFog(GL11.GL_FOG_COLOR, GLAllocation.createDirectFloatBuffer(16).put(0.1F).put(0.2F).put(0.3F));
        GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP);
        GL11.glFogf(GL11.GL_FOG_START, 0.0F);
        GL11.glFogf(GL11.GL_FOG_END, 8.0F);
    GL11.glFogf(GL11.GL_FOG_DENSITY, 1.5F);
    //GL11.glEnable(GL11.GL_COLOR_MATERIAL);
        //GL11.glColorMaterial(GL11.GL_FRONT, GL11.GL_AMBIENT);

}

Никаких изменений.
Я хоть в том направлении двигаюсь?
 
Туман... Мне тоже интересно как его сделать. По Y ниже 45... Будем ogl ковырять...
 
Я же статью дал. Тебе, вроде, надо куб с шейдерами отрисовать
 
Да не хочется мне шейдер в мод пихать... тем более какой-то внешний... тем более написанный не мной... тем более не умею...
Мне вот эта ссыль понравилась http://www.sccg.sk/~samuelcik/opengl/opengl_10.pdf
Это как раз то, что нужно... Практически стандартный МК туман.
Вот только указанных там функций (gl_FragCoord.z например) я что-то не нахожу... Роюсь в классе GL11.
И даже в стандартном тумане разобраться не могу (см. выше).
Наставьте на путь истинный...
 
Код:
gl_FragCoord.z
Это на языке шейдеров GLSL.в уроке даже написано "GLSL fog"

Ладно,что бы подредактировать туман,тебе надо сделать так:
Код:
private val buffer = BufferUtils.createFloatBuffer(16)

@SubscribeEvent
fun onRenderFogEvent(e: EntityViewRenderEvent.RenderFogEvent) {

    GL11.glFog(GL11.GL_FOG_COLOR, createBuffer(0.0F, 20.0F, 0.0F, 1.0F)) //Цвет
    GL11.glFogf(GL11.GL_FOG_START, 0.0F)     //начало тумана от игрока
    GL11.glFogf(GL11.GL_FOG_END, 10f)       //конец,в данном случае - 10 блоков

}


private fun createBuffer(var1: Float, var2: Float, var3: Float, var4: Float): FloatBuffer {
    buffer.clear()
    buffer.put(var1).put(var2).put(var3).put(var4)
    buffer.flip()
    return buffer
}

Получим такую картину:
221f97f6fb.jpg
 

И еще придется пофиксить небо.у меня есть решение,но там в связке с шейдером (и кода много)
 
Назад
Сверху