не совсем по моддингу

насколько я знаю, Minecraft использует LWJGL. На офф. сайте LWJGL я не нашёл толкового обучения или примеров. Может кто нибудь знает какие нибудь документации или книги по LWJGL или по JOGL. Заранее спасибо!
 
Толкового LWJGL, который изучался быстро для Minecraft... Боюсь что нету. Так как изучения начинаются с малого (создание сцены с объектами и освещением). Даже я до сих пор изучаю его пассивно (и в большинством я ещё не знаю основного).
Русскоязычных учебников и т.п. очень мало (но есть пару форумов), а Англоязычных учебников полно (но конкретных не получиться найти).
 
Игру мне писать ещё рано, просто хотелось бы понять, как и какими методами создают и рендерят мобов.
[merge_posts_bbcode]Добавлено: 03.01.2015 18:54:30[/merge_posts_bbcode]

Timaxa007, ты, например, написал код для своей книжной полки. У нее получилась своя модель. Мне для мода нужно отрендерить камень. Какие необходимы методы я не представляю, т.к. с моделями раньше не парился.
 
Для Minecraft с Forge'ем есть 5 способа:
1. С помощью программы Techne создать модели, но там все шейпы кубической формы создаются,
2. С помощью любого 3D-редакторов, которые могут экспортировать *.obj файлы, создать модель,
3. С помощью Tessellator методом addVertexWithUV или подобной ей есть, создать модель,
4. С помощью OpenGL, создать модель,
[add 15.01.2015]
5. С помощью Json'а или как-то так [Forge 1.8] [opl's Model Creator] Блок с моделью.

Рендерить с помощью нужных (точно не знаю как это написать) классов или методов. 1 и 2 нужно имортировать модели, 3 и 4 могут находиться отдельно или внутри рендера. 4 примера у меня нету, да не кто не пользуется.
Как-бы "GL11.glPushMatrix();" начало рендера для нашего объекта, "GL11.glPopMatrix();" конец нашего рендера объекта.
Если создаешь блок, то нужно указывать координаты место положения блока, обычно "GL11.glTranslated(dx, dy, dz);" (переменные в double значении). У итема не нужно указывать (они уже указаны в стандартом), но можно добавить для смещения с позиции "GL11.glTranslatef(fx, fy, fz);" (переменные в float значении). А так-же повернуть glRotatef или glRotated, в случаи 1 и 2 они будут необходимы.

Для импортации *.obj модели нужно подобным образом:
Код:
public static final IModelCustom mdl = AdvancedModelLoader.loadModel(new ResourceLocation("mod_id", "obj/model.obj"));
Чтобы отрендерить как блок:
Код:
GL11.glPushMatrix();
GL11.glTranslated(dx, dy, dz);
GL11.glRotatef(-90F, 1.0F, 0.0F, 0.0F);
bindTexture(new ResourceLocation("minecraft", "textures/blocks/planks_oak.png"));
mdl.renderAll();
GL11.glPopMatrix();

Код:
GL11.glPushMatrix();
GL11.glRotatef(-90F, 1.0F, 0.0F, 0.0F);
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("minecraft", "textures/blocks/planks_oak.png"));
mdl.renderAll();
GL11.glPopMatrix();

Для импортации Techne'ой модели:
Код:
private static final ModelClaymoreStick mdl = new ModelClaymoreStick();
ModelClaymoreStick - это класс твоей модели. Рендеришь примерно также, но вместо "mdl.renderAll();" на это "model.render();". В классе твоей модели должен быть создан метод render... Во-общем есть на счёт этого туториал, так как это может быть и создано по своему.
Для 3 и 4, не нужно импортировать, если конечно эта модель у тебя не отдельным классом (про отдельный способ сам должен понять) вставлять 3 или 4 вместо "mdl.renderAll();" или типа того.

Ну как-то так.
 
Назад
Сверху