Skip to content

Commit 4609401

Browse files
authored
Update map2ply.cs
1 parent 55eb7f2 commit 4609401

File tree

1 file changed

+60
-60
lines changed

1 file changed

+60
-60
lines changed

map2ply.cs

+60-60
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
// ôàéëû ñ ðàñøèðåíèåì *.map è *.hed äîëæíû íàõîäèòñÿ â îäíîé ïàïêå ñ cêîìïèëèðîâàííûì *.exe
2-
// ïðîáëåìû ñ ïîâîòîðîì êàðòû ïî îñÿì - ëåãêî ðåøàåò â Unity - ïóò¸ì èçìåíåíèÿ çíàêà êîîðäèíàòû ;)
3-
// ìîãóò áûòü ïðîáëåìû ñ íîðìàëÿìè , õç êàê èõ ÷èòàòü
1+
// файлы с расширением *.map и *.hed должны находится в одной папке с cкомпилированным *.exe
2+
// проблемы с повотором карты по осям - легко решает в Unity - путём изменения знака координаты ;)
3+
// могут быть проблемы с нормалями , хз как их читать
44

55
using System;
66
using System.IO;
@@ -9,22 +9,22 @@
99
using System.Collections.Generic;
1010
using System.Text.RegularExpressions;
1111

12-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
12+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
1313

1414
public class EarthGenerator
1515
{
1616

17-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
17+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
1818

1919
static void Main()
2020
{
2121

22-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
22+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
2323

24-
List<string> WritePLYList = new List<string>(); // ñþäà áóäåì äîáàâëÿòü âñå ñòðîêè
24+
List<string> WritePLYList = new List<string>(); // сюда будем добавлять все строки
2525
List<string> faceList = new List<string>();
2626

27-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
27+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
2828

2929
List<float> blist_height = new List<float>() ;
3030
List<float> blist_scale = new List<float>() ;
@@ -34,23 +34,23 @@ static void Main()
3434
List<byte> texture = new List<byte>() ;
3535
SortedList<int, byte> textureSL = new SortedList<int, byte>();
3636

37-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
37+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
3838

39-
// òî÷êè âìåñòî çàïÿòûõ // õîòÿ äëÿ obj ýòî íå âàæíî âðîäå áû // êàê è òàáû âìåñòî ïðîáåëîâ
39+
// точки вместо запятых // хотя для obj это не важно вроде бы // как и табы вместо пробелов
4040
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
4141

42-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
42+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
4343

4444
DirectoryInfo d = new DirectoryInfo(Directory.GetCurrentDirectory());
4545

4646
FileInfo[] MapPath = d.GetFiles("*.map");
4747

48-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
48+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
4949

5050
foreach (FileInfo file in MapPath)
5151
{
5252

53-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
53+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
5454

5555
byte[] array1d = File.ReadAllBytes(file.Name) ;
5656

@@ -68,18 +68,18 @@ static void Main()
6868
int width = Convert.ToInt32(m.ToString()); //width_and_height[0]
6969
int height = Convert.ToInt32(m.NextMatch().ToString()); //width_and_height[1]
7070

71-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
71+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
7272

7373
List<string> uvs_quad = new List<string>();
7474

75-
int j = 0 ; // äëÿ ñ÷¸ò÷èêà textureSL òåêñòóð
75+
int j = 0 ; // для счётчика textureSL текстур
7676

7777
for ( int i = 0 ; i < array1d.Length ; i += 56 )
7878
{
7979
// vertex.y
8080

81-
blist_height.Add ( array1d [i + 36] / 255f ) ; // âûñîòà
82-
blist_scale.Add ( array1d [i + 37] / 1f ) ; // ìàñøòàá
81+
blist_height.Add ( array1d [i + 36] / 255f ) ; // высота
82+
blist_scale.Add ( array1d [i + 37] / 1f ) ; // масштаб
8383

8484
// texture
8585

@@ -89,7 +89,7 @@ static void Main()
8989

9090
// type of block
9191

92-
block_type.Add (array1d[i + 44]) ; // òèï áëîêà
92+
block_type.Add (array1d[i + 44]) ; // тип блока
9393

9494
// uvs
9595

@@ -109,34 +109,34 @@ static void Main()
109109
Console.WriteLine ( "uvs_quad " + uvs_quad[0] ) ;
110110
Console.WriteLine ( "block_type " + block_type[0] ) ;
111111
*/
112-
//Console.WriteLine("íîìåðà òåêñòóð") ;
112+
//Console.WriteLine("номера текстур") ;
113113
//foreach ( var item in textureSL ) Console.WriteLine(item) ;
114114

115-
//Console.WriteLine("ïåðâûå ñåìü uvs_per_dace") ;
115+
//Console.WriteLine("первые семь uvs_per_dace") ;
116116
//for ( int i = 0 ; i < 8 ; i++ ) Console.WriteLine(uvs_quad[i]*255f);
117117

118-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
119-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
120-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
118+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
119+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
120+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
121121

122-
WritePLYList.Add("ply"); // ìàãè÷åñêîå ñëîâî
122+
WritePLYList.Add("ply"); // магическое слово
123123

124-
WritePLYList.Add("format ascii 1.0"); // åäèíñòâåííàÿ âåðñèÿ ôîðìàòà
124+
WritePLYList.Add("format ascii 1.0"); // единственная версия формата
125125

126-
foreach (var item in textureSL) // äîáàâëÿåì âñå ñòðîêè õðàíÿùèåñÿ â ñïèñêå - â âèäå êîììåíòàðèåâ â ôàéë
126+
foreach (var item in textureSL) // добавляем все строки хранящиеся в списке - в виде комментариев в файл
127127
{
128128
WritePLYList.Add("comment TextureFile "
129129
// + file.Name + "_"
130130
+ item.Value + ".png") ;
131131
}
132132

133-
WritePLYList.Add("element vertex " + (width*height) ) ; // êîëè÷åñòâî âåðøèí
133+
WritePLYList.Add("element vertex " + (width*height) ) ; // количество вершин
134134

135135
WritePLYList.Add("property float x") ;
136136
WritePLYList.Add("property float y") ;
137137
WritePLYList.Add("property float z") ;
138138

139-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
139+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
140140

141141
for ( int x = 0 ; x < (width*height) ; x++ )
142142
{
@@ -154,20 +154,20 @@ static void Main()
154154
if ( face_counter == 32513 ) face_counter = 32385 ; // 32766
155155
if ( face_counter == 1922 ) face_counter = 1920 ;
156156
*/
157-
WritePLYList.Add("element face " + face_counter); // îáùåå êîëè÷åñòâî òðåóãîëüíûõ ãðàíåé
157+
WritePLYList.Add("element face " + face_counter); // общее количество треугольных граней
158158

159-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
159+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
160160

161161
WritePLYList.Add("property list uchar int vertex_indices");
162162

163163
WritePLYList.Add("property list uchar float texcoord");
164164
WritePLYList.Add("property int texnumber");
165165

166-
WritePLYList.Add("end_header") ; // êîíåö çàãîëîâêà
166+
WritePLYList.Add("end_header") ; // конец заголовка
167167

168-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
168+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
169169

170-
// äîáàâëÿåì â PLY ñïèñîê èç (width*height) âåðøèí â âèäå êîîðäèíàò X Y Z float-òèïà
170+
// добавляем в PLY список из (width*height) вершин в виде координат X Y Z float-типа
171171

172172
int y = 0 ;
173173

@@ -181,39 +181,39 @@ static void Main()
181181
}
182182
}
183183

184-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
184+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
185185

186-
// äîáàâëÿåì â PLY ñïèñîê ãðàíåé â âèäå [ 3 v1 v2 v3 6 x1 y1 x2 y2 x3 y3 texture_page ]
186+
// добавляем в PLY список граней в виде [ 3 v1 v2 v3 6 x1 y1 x2 y2 x3 y3 texture_page ]
187187

188188
int t_page = 0 ;
189189

190190
for ( int x = 0 , uv_t = 0 , i = 0 ; x < (width*height) ; x++ , uv_t++ , i++ )
191191
{
192-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
192+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
193193

194194
foreach (var item in textureSL)
195195
if (item.Value == texture[i])
196196
t_page = item.Key;
197197

198-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
198+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
199199

200200
// int v1 = x ; int v2 = x + 1 ; int v3 = x + width ; int v4 = x + width - 1 ;
201201

202202
WritePLYList.Add ( "3 " + x + " " + (++x) + " " + (x+width-1) + " " + uvs_quad[uv_t] + " " + t_page); // 0 1 32___0 / 1___990 991 1022
203203

204-
uv_t++; // â ñòðî÷êå âûøå - íàêëàäûâàåì ïåðâûé Ó íà ïåðâûé òðåóãîëüíèê , â ñëåäóþùåé ñòðî÷êå - íà âòîðîé
204+
uv_t++; // в строчке выше - накладываем первый УВ на первый треугольник , в следующей строчке - на второй
205205

206206
WritePLYList.Add ( "3 " + x + " " + (x+width) + " " + (x+width-1) + " " + uvs_quad[uv_t] + " " + t_page); // 1 33 32___32/33___991 1023 1022
207207

208-
x-- ; // "îòêàò" èíäåêñà âåðøèí
208+
x-- ; // "откат" индекса вершин
209209

210-
if ( ( x + 2 ) % ( width ) == 0 ) x++ ; // åñëè 31+1 % 32 == 0
210+
if ( ( x + 2 ) % ( width ) == 0 ) x++ ; // если 31+1 % 32 == 0
211211

212-
if ( ( i + 2 ) % ( width ) == 0 ) i++ ; // åñëè óæå íàëîæåíà ñòðîêà òåêñòóð ïî øèðèíå óðîâíÿ , òî ïåðåõîäèì íà ñëåäóùóþ ñòðîêó , ïåðåïðûãíóâ âåðøèíó
212+
if ( ( i + 2 ) % ( width ) == 0 ) i++ ; // если уже наложена строка текстур по ширине уровня , то переходим на следущую строку , перепрыгнув вершину
213213

214214
// if ( x > ( ( width * height ) - width - 2 ) ) break ;
215215

216-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
216+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
217217

218218
// 60 61 ( 62 - 63) 64 65
219219
// 124 125 (126 - 127) 128 129
@@ -237,25 +237,25 @@ static void Main()
237237

238238
}
239239

240-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
240+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
241241

242-
// ñîçäà¸ì PLY ôàéë
242+
// создаём PLY файл
243243

244-
string FileName = Path.GetFileNameWithoutExtension(file.Name); // "èìÿ ôàéëà áåç ðàñøèðåíèÿ"
245-
string WriteFilePath = FileName + "___PLY.ply" ; // "èìÿ[Map]ôàéëà(áåç[.map])___PLY.ply"
246-
string[] PLY_write_Text = WritePLYList.ToArray() ; // âñå ñòðîêè èç ñïèñêà â ìàññèâ ñòðîê
247-
File.WriteAllLines(WriteFilePath, PLY_write_Text) ; // ìàññèâ ñòðîê çàïèñûâàåì â òåêñòîâûé ôàéë
244+
string FileName = Path.GetFileNameWithoutExtension(file.Name); // "имя файла без расширения"
245+
string WriteFilePath = FileName + "___PLY.ply" ; // "имя[Map]файла(без[.map])___PLY.ply"
246+
string[] PLY_write_Text = WritePLYList.ToArray() ; // все строки из списка в массив строк
247+
File.WriteAllLines(WriteFilePath, PLY_write_Text) ; // массив строк записываем в текстовый файл
248248

249-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
249+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
250250
/*
251-
Console.WriteLine ( "êîëè÷åñòâî âåðøèí = " + blist_scale.Count ) ;
252-
Console.WriteLine ( "êîëè÷åñòâî âåðøèí = " + (width*height) ) ;
253-
Console.WriteLine ( "êîëè÷åñòâî òåêñòóð = " + texture.Count ) ;
254-
Console.WriteLine ( "êîëè÷åñòâî face = " + face_counter ) ;
255-
Console.WriteLine ( "êîëè÷åñòâî uvs = " + uvs_quad.Count ) ;
251+
Console.WriteLine ( "количество вершин = " + blist_scale.Count ) ;
252+
Console.WriteLine ( "количество вершин = " + (width*height) ) ;
253+
Console.WriteLine ( "количество текстур = " + texture.Count ) ;
254+
Console.WriteLine ( "количество face = " + face_counter ) ;
255+
Console.WriteLine ( "количество uvs = " + uvs_quad.Count ) ;
256256
Console.WriteLine ( "" ) ;
257257
*/
258-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
258+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
259259

260260
WritePLYList.Clear();
261261
blist_height.Clear();
@@ -266,20 +266,20 @@ static void Main()
266266
textureSL.Clear();
267267
texture.Clear();
268268

269-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
269+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
270270

271271
// Console.WriteLine ( file.Name + " \t OK") ;
272272

273-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
273+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
274274

275275
} // foreach
276276

277-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
277+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
278278

279279
} // Main
280280

281-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
281+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
282282

283283
} // class
284284

285-
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
285+
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж

0 commit comments

Comments
 (0)