(esattamente come nel 2D per ottenere il fianco sinistro e destro di un personaggio per intenderci).
il codice è questo:
Codice: Seleziona tutto
if (mirror_3d == -1) { d3d_set_culling(false); }
d3d_draw_wall(x- (width/2)*global.camsin * mirror_3d,
y- (width/2)*global.camcos * mirror_3d,
//z+ (z_height/2)* global.camcos_v, //z_height included scale_3d
z1,
x+ (width/2)*global.camsin * mirror_3d,
y+ (width/2)*global.camcos * mirror_3d,
//z- (z_height/2)* global.camcos_v, //z_height included scale_3d
z2,
tex,1,1);
d3d_set_culling(true);
come notate ho dovuto mettere il culling a false per risolvere il problema della normale (che è anch'essa invertita evidentemente).
Però ora ho aggiunto le luci... e purtroppo la normale invertita fa si che l'oggetto non sia illuminato, ma risulti puramente nero (solo quando il mirror è attivato ovviamente!).
Come faccio (senza intervenire sullo sprite della texture) ad ottenere questo effetto salva memoria (meno sprite!), e contemporaneamente a gestire la luce (e a questo punto anche scordarmi del culling).
Riassunto: voglio disegnare la texture con l'asse "x" speculare, ma senza cambiare il verso della normale...