| 
				
				Рисование и текстурование приметивов.
				 |   |  
| Syank | Дата: Вторник, 08 Ноября 2011, 13:52 | Сообщение # 1 |  
 
участник 
Сейчас нет на сайте 
 
 | Ну нарисовал я примитив, как в примерах по 3д   Code var tex;   tex=background_get_texture(background0)   draw_primitive_begin_texture(pr_trianglefan,tex)   draw_vertex(room_width,room_height)   draw_vertex_texture(0,room_height,1,1)   var i;   i=1   repeat(21){        draw_vertex_texture(((room_width/20)*i)-32,execute_string("s.startpoint = global.terpoint"+string(i)),((room_width/20)*i)-32,execute_string("s.startpoint = global.terpoint"+string(i)))        i+=1}    draw_primitive_end()     только он чёрный и хоть ты тресни.
 |  
| 
 | 
 |    |  
| LunarPixel | Дата: Вторник, 08 Ноября 2011, 14:06 | Сообщение # 2 |  
 
старожил 
Сейчас нет на сайте 
 
 | попробуй использовать вместо draw_vertex и draw_vertex_texture функции draw_vertex_color и draw_vertex_texture_color   с последними аргументами c_white и 1
 
  
 |  
| 
 | 
 |    |  
| Syank | Дата: Вторник, 08 Ноября 2011, 14:12 | Сообщение # 3 |  
 
участник 
Сейчас нет на сайте 
 
 | теперь он чёрный и прозрачный:D хотя альфа 1...
 |  
| 
 | 
 |    |  
| LunarPixel | Дата: Вторник, 08 Ноября 2011, 14:38 | Сообщение # 4 |  
 
старожил 
Сейчас нет на сайте 
 
 | Ну вот простейший пример с наложением текстуры: 
   Code var tex;    tex=background_get_texture(background0)    draw_primitive_begin_texture(pr_trianglefan,tex)    texture_set_repeat(true) 
   draw_vertex_texture_color(100,50,1,0,c_white,1)   draw_vertex_texture_color(100,100,1,1,c_white,1)   draw_vertex_texture_color(50,100,0,1,c_white,1)   draw_vertex_texture_color(50,50,0,0,c_white,1) 
   draw_primitive_end()   
   Проверил, всё работает.
 
  
 |  
| 
 | 
 |    |  
| Syank | Дата: Вторник, 08 Ноября 2011, 16:32 | Сообщение # 5 |  
 
участник 
Сейчас нет на сайте 
 
 | Я не хотел, чтобы мне усложнили код рисования прямоугольника. Мне необходим текстурированный примитив по моему множество точек. Может ошибка в переменных или ещё где. Так то там примитив рисуется даже не по заданным точкам, словно часть точек проскакивает. Мало того, он ещё без текстуры.
 |  
| 
 | 
 |    |  
| LunarPixel | Дата: Вторник, 08 Ноября 2011, 16:37 | Сообщение # 6 |  
 
старожил 
Сейчас нет на сайте 
 
 | Syank, ну так я не экстрасенс и твоих точек не знаю, следовательно и проверить твой код не могу, может там и есть ошибка. Ибо то, что я написал, без части с твоими неведомыми точками, работает как надо.  
 
  
 |  
| 
 | 
 |    |  
| Syank | Дата: Вторник, 08 Ноября 2011, 17:14 | Сообщение # 7 |  
 
участник 
Сейчас нет на сайте 
 
 | Code //ñîçäàíèå òî÷åê ëàíäøàôòà   for (i=1; i<=21; i+=1)       execute_string("global.terpoint"+string(i)+" =400+random(20)");          вот точки
 
 Сообщение отредактировал Syank - Вторник, 08 Ноября 2011, 17:15  |  
| 
 | 
 |    |  
| LunarPixel | Дата: Вторник, 08 Ноября 2011, 17:28 | Сообщение # 8 |  
 
старожил 
Сейчас нет на сайте 
 
 | хм.. Я так понимаю ты поверхность сделать хочешь!? Смущают странные аргументы в draw_vertex_texture, попробуй вот так, как нибудь (не проверял): 
   Code var tex;     tex=background_get_texture(background0)     draw_primitive_begin_texture(pr_trianglefan,tex)     texture_set_repeat(true)    draw_vertex_color(room_width,room_height,c_white,1)    draw_vertex_texture_color(0,room_height,1,1,c_white,1)    var i;    i=1    repeat(21){         draw_vertex_texture_color(((room_width/20)*i)-32,execute_string("startpoint = global.terpoint"+string(i)),1,1,c_white,1)          i+=1}      draw_primitive_end()  
 
  
 |  
| 
 | 
 |    |  
| Syank | Дата: Среда, 09 Ноября 2011, 11:37 | Сообщение # 9 |  
 
участник 
Сейчас нет на сайте 
 
 | пффф, я нашёл что лишнее. s.startpoint =   Но как сотрёшь опять идиотские ошибки, задолбало уже жуть!Добавлено (09.11.2011, 11:37) --------------------------------------------- Блин! Я уже 4-х угольные рисую, всё равно нет текстуры.    Code var texr;   texr=background_get_texture(background1)   draw_primitive_begin_texture(pr_trianglefan,texr)   texture_set_repeat(false)   draw_vertex_color(x,y,c_green,1)   draw_vertex_color(x+32,endpoint,c_green,1)   draw_vertex_color(x+32,room_height,c_orange,1)   draw_vertex_color(x,room_height,c_orange,1)   draw_primitive_end()     endpoint не имеет особого значения, главное чтобы вышла площадь какая то.   Всё идеально выглядит! Только с текстурой бы было лучше, намного.
 |  
| 
 | 
 |    |  
| LunarPixel | Дата: Среда, 09 Ноября 2011, 12:16 | Сообщение # 10 |  
 
старожил 
Сейчас нет на сайте 
 
 | Code draw_set_color(c_white); 
   var t;   tex=background_get_texture(background0)    draw_primitive_begin_texture(pr_trianglefan,tex)    texture_set_repeat(true)  
   draw_vertex_texture(x,y,0,0);   draw_vertex_texture(x+128,60,1,0);   draw_vertex_texture(x+128,room_height,1,1);   draw_vertex_texture(x,room_height,0,1); 
   draw_primitive_end();  
 
  
 |  
| 
 | 
 |    |  
| Syank | Дата: Среда, 09 Ноября 2011, 13:05 | Сообщение # 11 |  
 
участник 
Сейчас нет на сайте 
 
 | так-с... всё работает:D Это супер!   Только.. Кто откроет теперь секрет как мне сделать чтобы текстура замостила примитив а не растягивалась по нему:D   я так понимаю это где то в draw_vertsx_color в конце...Добавлено (09.11.2011, 13:05) --------------------------------------------- П.С. последний вопрос снимаю - разобрался:D   За помощь с кодом ещё раз спасибо... хотя в форуме он первое) 
 |  
| 
 | 
 |    |  
| LunarPixel | Дата: Среда, 09 Ноября 2011, 13:07 | Сообщение # 12 |  
 
старожил 
Сейчас нет на сайте 
 
 | Это нужно шаманить с аргументами xtex, ytex в draw_vertex_texture. Делать их больше единицы, если у тебя фигура большая и надо повторять текстуру несколько раз. Экспериментируй, это от построения фигуры зависит.
 
  
 |  
| 
 | 
 |    |     
		
		 
 |