Рисование и текстурование приметивов.
| |
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. Делать их больше единицы, если у тебя фигура большая и надо повторять текстуру несколько раз. Экспериментируй, это от построения фигуры зависит.
|
|
| |
|