Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2011, 09:36   #1
cashmail
Форумчанин
 
Регистрация: 23.06.2011
Сообщений: 201
По умолчанию MESH карта

Здравствуйте хочу сделать свой 3d город

Нашел 2 примера, 1 все хорошо, но в фаиле карты (mesh) все както ужасно выглядит! И во втором исходнике все не очень, но вот mesh там очень удобно прописан, ну скажем в первом

Код:
Vertex.Data  11.0055799484253 20 -10  -8.99442005157471 20 -10  11.0055799484253 20 10  -8.99442005157471 20 10
А во втором

Код:
52 vertices
-3.0 0.0 -15.0
-1.5 0.0 -15.0
 0.0 0.0 -30.0
 1.5 0.0 -30.0
 3.0 0.0 -30.0
-3.0 0.0 -1.5
-1.5 0.0 -1.5
 0.0 0.0 -1.5
 1.5 0.0 -1.5
 3.0 0.0 -3.0
-3.0 0.0 0.0
-1.5 0.0 0.0
Второй пример намного удобнее, т.к. не имею возможности скачать 3d MAX буду в ручную! НО хотел бы попросить добрых людей, систему чтения MESH карты переделать, чтобы была как во втором!))

Заранее спасибо!

Выкладываю 1 в которых надо изменить и 2 с которого надо взять модуль!

И еще раз заранее спасибо!
Вложения
Тип файла: rar Этот редактировать.rar (200.8 Кб, 22 просмотров)
Тип файла: rar отсюда взять.rar (134.3 Кб, 18 просмотров)
cashmail вне форума Ответить с цитированием
Старый 21.10.2011, 19:22   #2
cashmail
Форумчанин
 
Регистрация: 23.06.2011
Сообщений: 201
По умолчанию

Люди!?!?

Кто поможет? Уже 3 дня не могу спокойно спать
cashmail вне форума Ответить с цитированием
Старый 08.01.2012, 15:59   #3
=Маэстро=
Новичок
Джуниор
 
Регистрация: 29.12.2011
Сообщений: 1
По умолчанию

Наиболее простой способ сделать город в 3д это 3d max.
1)Прорабатываешь ландшафт и масштаб.
Основной ландшафт прорисовывается в пейнте в виде черно-белого рисунка. Загружаешь его в макс и преобразуешь 2д рисунок в 3д макет. Чем область на рисунке темнее(область = пиксель) тем точка будет выше и наоборот. Итак ты получишь 3д макет чисто изображающий землю со всеми её низменностями и высотами.
2)Затем накладываешь основные магистрали(я бы делал сплайнами). Надеюсь ты умеешь работать с текстурами или посмотришь это в других местах, но если надо объясню после.
3)Прорисовываешь таким же методом более мелкие дороги(желательно соблюдая разметку).
4)Прорисовываешь неасфальтированные дорожки и дорожки, имеющие нестандартые текстуры или просто мелкие тропинки.
5)Прорисовываешь здания, или сначала просто кубами(box) расставляешь их, или прорисовываешь сразу в 3д, но можешь и наложить текстуры, что, несомненно, ускорит процесс.
6)Доролняешь город фонарными столбами, будками, деревьями и проче мелочью.
7)Прорисовываешь спец зоны т.е. подземные парковки, парки, площадки и особо важные по твоему мнению объекты.

Вроде какой ни какой а город должен получиться, чтобы на нем летать бегать или прыгать необходимо задействовать дирекст или опенждиель и прорабатывать потом в с++ например. Эта часть является самой трудоемкой и менее заметной чем первая.

Но прорисовку более крупных городов лучше поделить между несколькими людьми, иначе замучаешься в соло все рисовать....

Последний раз редактировалось Beermonza; 08.01.2012 в 16:19. Причина: чатинг
=Маэстро= вне форума Ответить с цитированием
Старый 10.01.2012, 06:36   #4
Artem-DobermAN
 
Регистрация: 10.01.2012
Сообщений: 5
По умолчанию

ну мой совет как 3Dшник потрать 1-2 недели на изучения Blender... прога оч лёгкая в учебе чем тот же макс или майя..... а если по ней дальше пойдешь, то поймешь что макс просто курит в сторонке))))
Artem-DobermAN вне форума Ответить с цитированием
Старый 31.01.2012, 20:45   #5
jetei
Пользователь
 
Регистрация: 29.08.2011
Сообщений: 24
По умолчанию

Хммм
Код:
Type
TCoord = record
   X, Y, Z : glFLoat;
 end;
 TFace = record
   V1, V2, V3, V4: integer;
   U, V: glFloat;
   TextureIndex: integer;
 end;
...
var
...
Texture: array of glUint;
 TextureCount: integer;
 VertexCount: integer;
 FaceCount: integer;
 Vertex: array of TCoord;
 Face: array of TFace;
  D: integer;
...


procedure glBindTexture(target: GLenum; texture: GLuint); stdcall; external opengl32;

procedure LoadMap;
var
 F: Textfile;
 Tex: array of string;
 S: string;
 I, J: integer;
begin
 AssignFile(F, 'Путь к файлу');
 Reset(F);
 // Load the textures
 Readln(F, TextureCount);
 SetLength(Tex, TextureCount);
 SetLength(Texture, TextureCount);
 for I:=0 to TextureCount-1 do
  begin
   Readln(F, S);
   Tex[i]:=Copy(S, 1, Pos(' ', S)-1);
   S :=Copy(S, Pos(' ', S)+1, length(S));
   LoadTexture(S, Texture[i], FALSE);
  end;
 // Load the vertices
 Readln(F, VertexCount);
 SetLength(Vertex, VertexCount);
 for I:=0 to VertexCount-1 do
  Readln(F, Vertex[i].X, Vertex[i].Y, Vertex[i].Z);
 // Load the faces
 Readln(F, FaceCount);
 SetLength(Face, FaceCount);
 for I:=0 to FaceCount-1 do
  begin
   Readln(F, Face[i].V1, Face[i].V2, Face[i].V3, Face[i].V4, Face[i].U, Face[i].V, S);
   S:=Trim(Copy(S, 1, 12));
   for J :=0 to TextureCount-1 do
    if Tex[J]=S
    then Face[i].TextureIndex:=J;
  end;
 CloseFile(F);
end;
А ето вставь там, где будеш рисовать(в OnPaint например)
Код:
for D:=0 to FaceCount-1 do
  with face[D] do
   begin
    glBindTexture(GL_TEXTURE_2D, Texture[TextureIndex]);
    glBegin(GL_QUADS);
     glTexCoord(0, 0);  glVertex3fv(@Vertex[V1-1]);
     glTexCoord(U, 0);  glVertex3fv(@Vertex[V2-1]);
     glTexCoord(U, V);  glVertex3fv(@Vertex[V3-1]);
     glTexCoord(0, V);  glVertex3fv(@Vertex[V4-1]);
    glEnd();
  end;

Последний раз редактировалось jetei; 31.01.2012 в 20:55.
jetei вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посоветуйте 3д движок для .mesh ALKOrobot C++ Builder 0 28.07.2011 15:32
3d карта SonicBob Помощь студентам 2 31.05.2011 02:18
MESH сети. Практическая реализация raxp Свободное общение 6 05.08.2010 19:36
Сеточная карта legendary Помощь студентам 0 21.04.2010 17:23
Карта C++ mutabor Свободное общение 6 15.06.2009 23:36