Показать сообщение отдельно
Старый 24.01.2014, 14:58   #12
HuntsMan
Ученый
 
Аватар для HuntsMan
 
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
HuntsMan На верном пути
По умолчанию

Вот ещё такой вопрос возник: пытаюсь отрисовать тайл средствами OpenGL. Чанки по отдельности отрисовываются замечательно, но как только пытаюсь их объединить вместе получается полный бред. Отрисовкой конкретного чанка занимается этот код:

Код:
        public void DrawMap(MCNK adt_MCNK)
        {
            foreach (Chunk subchunk in adt_MCNK.subchunksList)
            {
                if (subchunk.chunkname == "MCVT")
                {
                    MCVT adt_MCVT = (MCVT)subchunk;

                    for (int x = 0; x < 8; x++)
                    {
                        for (int y = 0; y < 8; y++)
                        {
                            float nL1 = adt_MCVT.getValNoLOD(x, y);
                            float nL2 = adt_MCVT.getValNoLOD(x, y + 1);
                            float nL3 = adt_MCVT.getValNoLOD(x + 1, y);
                            float nL4 = adt_MCVT.getValNoLOD(x + 1, y + 1);
                            float L = adt_MCVT.getValLOD(x, y);

                            int XOff = adt_MCNK.IndexX * 7;
                            int YOff = adt_MCNK.IndexY * 7;

                            glVertex3f(XOff + y, YOff + x, nL1);
                            glVertex3f(XOff + y + 1, YOff + x, nL2);
                            glVertex3f(XOff + y + 0.5f, YOff + x + 0.5f, L);

                            glVertex3f(XOff + y, YOff + x, nL1);
                            glVertex3f(XOff + y, YOff + x + 1, nL3);
                            glVertex3f(XOff + y + 0.5f, YOff + x + 0.5f, L);

                            glVertex3f(XOff + y, YOff + x + 1, nL3);
                            glVertex3f(XOff + y + 1, YOff + x + 1, nL4);
                            glVertex3f(XOff + y + 0.5f, YOff + x + 0.5f, L);

                            glVertex3f(XOff + y + 1, YOff + x, nL2);
                            glVertex3f(XOff + y + 1, YOff + x + 1, nL4);
                            glVertex3f(XOff + y + 0.5f, YOff + x + 0.5f, L);
                        }
                    }
                    break;
                }
            }
        }
Получается вот так: https://www.dropbox.com/s/t8flx5tibn...2015.18.54.png
Там какая-то особая последовательность чанков должна быть?
HuntsMan вне форума   Ответить с цитированием