Отрисовка квадратной текстуры на весь экран

1,137
5
3
Хотел сделать что-то типа тыквы. Имею текстуру 256х256. Когда рисую на весь экран, она растягивается под размеры экрана. А мне этого не надо. Как быть?
 

timaxa007

Модератор
5,831
409
672
Ну что-то типа этого.
Код:
Tessellator tessellator = Tessellator.instance;

int width = resolution.getScaledWidth();
int height = resolution.getScaledHeight();

GL11.glPushMatrix();
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);

int w_min = 0;
int w_max = width;
int h_min = 0;
int h_max = height;

if (width > height) {
w_min = (width / 2) - (height /2);
w_max = (width / 2) + (height /2);
//-------------------------------------------------------------
voidRender(tessellator, 0, w_min, h_min, h_max, черные поля);
voidRender(tessellator, w_max, width, h_min, h_max, черные поля);
//-------------------------------------------------------------
} else if (height > width) {
h_min = (height / 2) - (width /2);
h_max = (height / 2) + (width /2);
//-------------------------------------------------------------
voidRender(tessellator, w_min, w_max, 0, h_min, черные поля);
voidRender(tessellator, w_min, w_max, h_max, height, черные поля);
//-------------------------------------------------------------
}
//-------------------------------------------------------------
voidRender(tessellator, w_min, w_max, h_min, h_max, Основная текстура);
//-------------------------------------------------------------
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
GL11.glPopMatrix();
[merge_posts_bbcode]Добавлено: 02.07.2016 23:34:45[/merge_posts_bbcode]

Если я правельно понял тебя.

[merge_posts_bbcode]Добавлено: 02.07.2016 23:35:51[/merge_posts_bbcode]

voidRender - мой метод, но думаю смысл понятен.
 
1,137
5
3
Я когда пробовал разрабатывать игру на libgdx сталкивался с проблемой: при неправильной настройке viewport, появлялись чёрные полосы, и я с ними боролся. А теперь, наоборот, надо, чтобы они появились. Так может пошаманить над glViewport?
 
1,976
68
220
Ты хочешь фигнюшку перед лицом, которая будет сохранять размер, даже если экран больше неё (то есть по краям будут "щели")?
А в чём проблема отрисовывать обычный квад, беря за Y-координату eyeHeight игрока +/- 128 и вращать за ним по glRotatef(player.rotationYaw, 0.0F, 1.0F, 0.0F) ?
[merge_posts_bbcode]Добавлено: 03.07.2016 14:15:42[/merge_posts_bbcode]

Если обязательно на самом экране - есть же вроде для гуи какие-то методы, типа drawScreen или как они там - можешь их использовать, они, вроде, не тянутся
 
Сверху