Сделал партикль.

Как ты партикль для спавна дергаешь?
кинь класс блока
 
          if(this.worldObj.isRemote)
           Minecraft.getMinecraft().renderEngine.bindTexture(DEFAULT_TEXTURE);

Действительно, почему это все партикли принимают твою текстуру?
Ты биндишь свою текстуру, но это делаешь только ты. Потому что дефолтная система партиклей не подразумевает несколько атласов для частиц, в итоге они все рисуются без свитча текстур (откуда и проблема, твоя текстура накладывается на остальные, некоторые вообще пропасть должны, если в атласе по их UV-координатам нифига нет), что экономит кучу времени. Но сама система говно.
Хотя бы по окончанию рендера бинди обратно дефолтную текстуру партиклей.
http://www.minecraftforum.net/forum...pment/1436136-1-6-4-custom-particles-tutorial
Тут есть пример.

Ещё лучше сделать свою систему, но это тяжелее.
 
Спавню партикль так:
Код:
double d = (float)i + random.nextFloat();
double d1 = (float)j + 0.0F;
double d2 = (float)k + random.nextFloat();
EntityFXManager.spawnParticle("sakura", d, d1, d2, 0.0D, 0.0D, 0.0D);

Код:
private static Minecraft mc = Minecraft.getMinecraft();
    private static WorldClient theWorld = mc.theWorld;
    
    public static EntityFX spawnParticle(String particleName, double par2, double par4, double par6, double par8, double par10, double par12)
    {
        if (mc != null && mc.renderViewEntity != null && mc.effectRenderer != null)
        {
            int i = mc.gameSettings.particleSetting;

            if (i == 1 && theWorld.rand.nextInt(3) == 0)
            {
                i = 2;
            }    
            
            double d6 = mc.renderViewEntity.posX - par2;
            double d7 = mc.renderViewEntity.posY - par4;
            double d8 = mc.renderViewEntity.posZ - par6;
            EntityFX entityfx = null;
            
            double d9 = 16.0D;

                if (d6 * d6 + d7 * d7 + d8 * d8 > d9 * d9)
                {
                    return null;
                }
                else if (i > 1)
                {
                    return null;
                }
                else
                {
                    if (particleName.equals("sakura"))
                    {
                        entityfx = new EntitySakuraFX(theWorld,  par2, par4, par6, par8, par10, par12);
                    }
                }

            Minecraft.getMinecraft().effectRenderer.addEffect(entityfx);
            return (EntityFX) entityfx;
        }
      return null;
    }
}
    


Oldestkon - свою систему не сделаю. Я не профи кодер. Сможете, пожалуйста, сказать(написать) что сдесь пофиксить что бы спавнились партиклы нормально
 
Тебе ж сказали: встроенная система не предусматривает кастомных партиклов со своей текстурой)
 
Я дал ссылку же.
kiss_55kb.1430228901.jpg

Это после рендера обязательно вставь.
На тормоза не жалуйся.
 
Тема частично закрыта. Но есть еще 1 вопрос. Как сделать густоту партиклев больше?
P.S Oldestkon - большое тебе спасибо. Еще у меня к тебе вопрос. Сможешь ли ты мне сделать пару вещей за деньги?
 
Agravaine написал(а):
Щас прибежит Глуми и начнет кричать, что вызывать драв-колл для каждой частицы - тупо)
И будет прав. Но тут человек не хочет писать свою систему частиц - чтоподелать.

@Yarik, пока нет, попросту не хватит времени.
 
Если ты хочешь, чтобы они освещал блоки - это дикие страдания.
Можно, конечно, каким-нибудь образом искусственно освещать определенную территорию и посылать туда большое скопление частиц, будет выглядеть, будто это они освещают, а на самом деле - нет.
В ином случае просто поменять режим смешивания, наверное. Можно ещё шейдеры сделать, но это всё будет тормозить. Безбожно тормозить.
Ещё одна причина сделать свою систему частиц.
 
Oldestkon написал(а):
Если ты хочешь, чтобы они освещал блоки - это дикие страдания.
Можно, конечно, каким-нибудь образом искусственно освещать определенную территорию и посылать туда большое скопление частиц, будет выглядеть, будто это они освещают, а на самом деле - нет.
В ином случае просто поменять режим смешивания, наверное. Можно ещё шейдеры сделать, но это всё будет тормозить. Безбожно тормозить.
Ещё одна причина сделать свою систему частиц.
Безбожно тормозить будет по draw call'у на частицу, а отрисовка через шейдер с дополнительными фичами (поворот частицы, довольно хитрый режим смешивания) у меня работает быстрее ванильных частиц.
Не думаю, что стояла задача освещать блоки, ИМХО он именно про режимы смешивания.
 
Ну отрисовка через шейдер сразу всех частиц уже подразумевает отдельную систему частиц xD
Так что я сразу отбросил этот вариант и имел ввиду шейдер на каждый драв калл для каждой частицы. Ты понял, короче, какой ужас.
 
сделать его прозрачным, при накладывании одной прозрачности на другую можно добить "как бы" свечения., но шейдер всё равно лучше (типо Bloom)
 
Назад
Сверху