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

4,045
63
645
В общем так!
Воспользовался я ссылкой на ответ хирурга, решил запустить хотя бы тестовый шейдер, скопированный с ванильного.
1-й жсон лежит в папке post и его методом тыка удалось найти по пути: "mist:shaders/post/fog.json".
А вот те, что лежат в папке program пока не понял как искать.
fog.json:
Код:
{
    "targets": [
        "swap"
    ],
    "passes": [
        {
            "name": "flip1",
            "intarget": "minecraft:main",
            "outtarget": "swap"
        },
        {
            "name": "blit",
            "intarget": "swap",
            "outtarget": "minecraft:main"
        }
    ]
}

Ванильный flip я переименовал во flip1 спецом, чтобы убедится, что он ищет именно мой файл.
Пока он был flip, в консоле писалось, что шейдер - null.
После переименовывания пишет, что путь не найден.

Пробовал варианты:
"flip1"
"mist:flip1"
"mist:shaders/program/flip1"

Эффект тот же:
Код:
Invalid shaders/program/flip1.json: File not found
[merge_posts_bbcode]Добавлено: 18.06.2016 01:04:10[/merge_posts_bbcode]

Вместе с flip1.json лежит вершинный шейдер, вместе с blit.json -  фрагментный...
Содержание скопировал с ванили.
 
1,239
2
24
Смотри магию:
Код:
private static ResourceLocation shader = new ResourceLocation("shaders/post/phosphor.json");
Оно будет искать в assets/minecraft/shaders/post/phosphor.json
[merge_posts_bbcode]Добавлено: 17.06.2016 22:36:37[/merge_posts_bbcode]

То есть просто папку майнкрафт создай
 
164
1
4
"name": "flip1" - это имя джсона в program и этот джсон должен находиться вместе с вершинным (vsh) и фрагментным (fsh) шейдерами в:
Код:
"assets.minecraft.shaders.program"
А тот джсон, что в post - может находиться в твоём моде.
 
4,045
63
645
Так, ну, flip1 нашёл.
Но теперь пишет:
Код:
net.minecraft.client.util.JsonException: Invalid shaders/program/flip1.json: null

Что странно, ибо содержание скопировано с ванили... :\

Код:
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: net.minecraft.client.util.JsonException: Invalid shaders/program/flip1.json: null
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at net.minecraft.client.util.JsonException.func_151379_a(JsonException.java:62)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at net.minecraft.client.shader.ShaderManager.<init>(ShaderManager.java:167)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at net.minecraft.client.shader.Shader.<init>(Shader.java:30)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at net.minecraft.client.shader.ShaderGroup.addShader(ShaderGroup.java:346)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at net.minecraft.client.shader.ShaderGroup.func_152764_a(ShaderGroup.java:170)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at net.minecraft.client.shader.ShaderGroup.func_152765_a(ShaderGroup.java:106)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at net.minecraft.client.shader.ShaderGroup.<init>(ShaderGroup.java:54)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at ru.liahim.mist.shaders.ShaderProgram.activateShader(ShaderProgram.java:42)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at ru.liahim.mist.network.FogEvent.onRenderFogEvent(FogEvent.java:39)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at cpw.mods.fml.common.eventhandler.ASMEventHandler_6_FogEvent_onRenderFogEvent_RenderFogEvent.invoke(.dynamic)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at cpw.mods.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:54)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at cpw.mods.fml.common.eventhandler.EventBus.post(EventBus.java:140)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at net.minecraft.client.renderer.EntityRenderer.setupFog(EntityRenderer.java:2075)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1364)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1087)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1067)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at net.minecraft.client.Minecraft.run(Minecraft.java:962)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at net.minecraft.client.main.Main.main(Main.java:164)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at java.lang.reflect.Method.invoke(Unknown Source)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at GradleStart.main(Unknown Source)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: Caused by: java.lang.NullPointerException
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     at net.minecraft.client.shader.ShaderManager.<init>(ShaderManager.java:149)
[09:52:18] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]:     ... 24 more
 
4,045
63
645
Так! Запустилось... Но не через эвент...
Потом разберусь, как это правильно врубать.

А сейчас пытаюсь написать сами шейдеры... И чо-та не могу понять, как же выяснить координаты вертекса в мире?
В нете пишут: worldCoord = gl_ModelViewMatrix * gl_Vertex;
А затем, просто нужно взять нужную величину. Например: height = worldCoord.y;

Однако, что-то я делаю не так...
Во фрагментном шейдере я перемножаю цвет на высоту... (чисто для проверки)

Код:
vec4 c = texture2D (DiffuseSampler, texCoord);
gl_FragColor = vec4(c.r*height, c.g*height, c.b*height, c.a);
Но экран просто окрашивается в чёрный цвет.

Если пишу: worldCoord = gl_ModelViewMatrix * Position; то вычисление происходит в пространстве экрана...
Я даже начал подозревать, что атрибут Position совсем не тот, чем кажется -_-

В общем, хелп...
 
1,137
5
3
Зачем на высоту? Там цвет от 0 до 1, а у тебя он получается больше. Туман чёт не получается запилить, не могу осилить ни одну формулу.
 
4,045
63
645
nikita488 написал(а):
А чё не работает то? Работает :p 
5Cjjzut.png
Народ, поясните, плиз, каким образом задаётся цвет боковых сторон неба? Чо-та не могу сообразить. В renderSky все 5 сторон просчитываются разом, с единым цветом и включённым FOG-ом. Отчего такая полоса случается?
Где-то я не там ищу, видимо...

Туман меняю в эвенте тумана, как тут и было описано.
 
1,239
2
24
Из за карты освещения видимо(не уверен)
А еще есть спец. эвент для цвета тумана. FogColorEnevt как то так.посмотри в таблеце
 
1,137
5
3
Liahim написал(а):
Да, тоже о нём подумал... Но протестить пока не успел... Вечером гляну.
Да небось из-за ... тумана... Майнкрафт рисует туман по краям чанков, вот и такая полоска. 2 тумана не смешиваются
 
Сверху