Página 1 de 1

Rotacionar textura em um plano (primitive)

Enviado: Dom Abr 22, 2018 5:40 pm
por Foxy Of Jungle
Preciso urgente saber como faz pra desenhar uma textura que pode girar em tempo real dentro de um plano 3D (Primitives) (Triângulo retângulo)
Eu sei que a localização da textura vai dentre 0 e 1

Conforme a imagem:

Imagem


Como visto acima, é um plano 3d normal com uma textura, eu preciso rotacionar ela dentro do plano.
Por favor alguém me ajuda!

Obrigado!

Re: Rotacionar textura em um plano (primitive)  Tópico resolvido

Enviado: Ter Abr 24, 2018 9:39 am
por All-x
Dica: Não utilize "urgente" quando for pedir ajuda, isso afasta quem pode responder. Dá a impressão de ser uma ordem e não um pedido.

Pensei em algumas formas de fazer. No código abaixo fiz o teste para primitivos 2D, porém deve funcionar com 3D, basta fazer os ajustes.

Código: Selecionar todos

/* Cria surface */
var ss = surface_create(128, 128);

/* Variável para rotacionar sprite */ 
var rot = current_time *.5;

/* Desenha na surface */
surface_set_target(ss);
    
    /* Desenha sprite */
    draw_sprite_ext(spr_roda, 0, 64, 64, 1, 1, rot, c_white, 1)

surface_reset_target();

/* Configura textura */
draw_set_colour(c_white);
var tex = surface_get_texture(ss);

/* Desenha primitivo */
draw_primitive_begin_texture(pr_trianglefan, tex);
    draw_vertex_texture(0, 0, 0, 0);
    draw_vertex_texture(128, 0, 1, 0);
    draw_vertex_texture(128, 128, 1, 1);
    draw_vertex_texture(0, 128, 0, 1);   
draw_primitive_end();

/* Libera surface da memória */
surface_free(ss);
Espero que ajude.

FLWS!

Re: Rotacionar textura em um plano (primitive)

Enviado: Ter Abr 24, 2018 5:37 pm
por Foxy Of Jungle
Não tinha pensado em usar surfaces. :hahaha: Vou tentar fazer. Valeu pela ajuda!
Sobre o "urgente" eu estava desesperado (passei 2 horas tentando :lol!: Sério, tentei até usar vários modelos como Frames com animação de rodar)