Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
− | |||
− | |||
<div class="mw-parser-output"> | <div class="mw-parser-output"> | ||
<div class="mw-parser-output"> | <div class="mw-parser-output"> | ||
− | = Введение в рендер блоков = | + | = <span style="font-size:18.0pt"><span style="line-height:107%">Введение в рендер блоков</span></span> = |
− | Кроме формы из одного параллелепипеда, которой обладает большинство блоков, Inner Core позволяет задать им почти любой внешний вид. | + | Кроме формы из одного параллелепипеда, которой обладает большинство блоков, Inner Core позволяет задать им почти любой внешний вид. |
− | |||
+ | <div class="mw-parser-output"> | ||
== Формат описания текстуры и ее наложение на блок == | == Формат описания текстуры и ее наложение на блок == | ||
Строка 21: | Строка 19: | ||
["название4", индекс4], // front | ["название4", индекс4], // front | ||
["название5", индекс5], // left | ["название5", индекс5], // left | ||
− | ["название6", индекс6] | + | ["название6", индекс6] // right |
− | ]</syntaxhighlight> | + | ] |
− | Каждый из элементов массива отвечает за одну текстуру, если элементов меньше 6, то текстуры недостающих сторон скопируют последний элемент массива.</div> | + | </syntaxhighlight> |
+ | |||
+ | Каждый из элементов массива отвечает за одну текстуру, если элементов меньше 6, то текстуры недостающих сторон скопируют последний элемент массива. | ||
+ | </div> | ||
+ | |||
== Статичная модель блока == | == Статичная модель блока == | ||
Строка 32: | Строка 34: | ||
Пустая статичная модель создается с помощью конструктора ''new BlockRenderer.Model()'' и обладает следующими методами: | Пустая статичная модель создается с помощью конструктора ''new BlockRenderer.Model()'' и обладает следующими методами: | ||
− | <span style="line-height:108%">model.addBox(x1, y1, z1, x2, y2, z2, id, data) - добавляет бокс с текстурой блока с данными id, data</span> | + | <span style="line-height:108%">''model.addBox(x1, y1, z1, x2, y2, z2, id, data) - добавляет бокс с текстурой блока с данными id, data''</span> |
− | <span style="line-height:108%">model.addBox(x1, y1, z1, x2, y2, z2, "name", index) - добавляет бокс с текстурой с именем name и индексом index на всех сторонах</span> | + | <span style="line-height:108%">''model.addBox(x1, y1, z1, x2, y2, z2, "name", index) - добавляет бокс с текстурой с именем name и индексом index на всех сторонах''</span> |
− | <span style="line-height:108%">model.addBox(x1, y1, z1, x2, y2, z2, [… texture set ...]) - добавляет бокс с заданным массивом текстур (формат см. выше)</span> | + | <span style="line-height:108%">''model.addBox(x1, y1, z1, x2, y2, z2, [… texture set ...]) - добавляет бокс с заданным массивом текстур (формат см. выше)''</span> |
− | <span style="line-height:108%">model.addMesh(mesh) - добавляет в модель объект RenderMesh - произвольную полигональную 3D модель, о которых будет рассказано позднее</span> | + | <span style="line-height:108%">''model.addMesh(mesh) - добавляет в модель объект RenderMesh - произвольную полигональную 3D модель, о которых будет рассказано позднее''</span> |
Существуют так же другие конструкторы, упрощающие быстрое создание простых моделей: | Существуют так же другие конструкторы, упрощающие быстрое создание простых моделей: | ||
− | <span style="line-height:108%">new BlockRenderer.Model(mesh) - создает модель, которая содержит в себе данный объект RenderMesh</span> | + | <span style="line-height:108%">''new BlockRenderer.Model(mesh) - создает модель, которая содержит в себе данный объект RenderMesh''</span> |
− | <span style="line-height:108%">new BlockRenderer.Model(x1, y1, z1, x2, y2, z2, [… texture set ...]) - создает модель, которая является одним боксом с данным массивом текстур</span> | + | <span style="line-height:108%">''new BlockRenderer.Model(x1, y1, z1, x2, y2, z2, [… texture set ...]) - создает модель, которая является одним боксом с данным массивом текстур''</span> |
− | <span style="line-height:108%">new BlockRenderer.Model([… texture set ...]) - создает модель, которая является полным блоком с данным массивом текстур</span> | + | <span style="line-height:108%">''new BlockRenderer.Model([… texture set ...]) - создает модель, которая является полным блоком с данным массивом текстур''</span> |
− | <span style="line-height:108%">new BlockRenderer.Model(x1, y1, z1, x2, y2, z2, "name", index) - создает модель, которая является одним боксом с данной текстурой на всех сторонах</span> | + | <span style="line-height:108%">''new BlockRenderer.Model(x1, y1, z1, x2, y2, z2, "name", index) - создает модель, которая является одним боксом с данной текстурой на всех сторонах''</span> |
− | <span style="line-height:108%">new BlockRenderer.Model("name", index) - создает модель, которая является полным блоком с данной текстурой на всех сторонах</span> | + | <span style="line-height:108%">''new BlockRenderer.Model("name", index) - создает модель, которая является полным блоком с данной текстурой на всех сторонах''</span> |
− | <span style="line-height:108%">new BlockRenderer.Model(x1, y1, z1, x2, y2, z2, id, data) - создает модель, которая является одним боксом, копирующим текстуру из блока с данными id, data</span> | + | <span style="line-height:108%">''new BlockRenderer.Model(x1, y1, z1, x2, y2, z2, id, data) - создает модель, которая является одним боксом, копирующим текстуру из блока с данными id, data''</span> |
− | <span style="line-height:108%">new BlockRenderer.Model(id, data) - создает модель, которая является полным блоком, копирующим текстуру из блока с данными id, data</span> | + | <span style="line-height:108%">''new BlockRenderer.Model(id, data) - создает модель, которая является полным блоком, копирующим текстуру из блока с данными id, data''</span> |
== Основы ICRender == | == Основы ICRender == | ||
Строка 60: | Строка 62: | ||
ICRender является системой, позволяющей заранее задать блоку внешний вид в зависимости от внешних условий. Основным объектом для рендера блоков является модель ICRender, которая является набором статических моделей и условий, при которых они будут отрисовываться. | ICRender является системой, позволяющей заранее задать блоку внешний вид в зависимости от внешних условий. Основным объектом для рендера блоков является модель ICRender, которая является набором статических моделей и условий, при которых они будут отрисовываться. | ||
− | Для создания модели ICRender используется конструктор ''new ICRender.Model(), ''для добавления статичной модели в модель ICRender используется метод ''addEntry(model)'': | + | Для создания модели ICRender используется конструктор ''new ICRender.Model(), ''для добавления статичной модели в модель ICRender используется метод ''addEntry(model)'': ''var staticModel = new BlockRenderer.Model(); // модификация модели staticModel var icRenderModel = new ICRender.Model(); icRenderModel.addEntry(staticModel); '' |
− | |||
− | var icRenderModel = new ICRender.Model(); | ||
− | icRenderModel.addEntry(staticModel); | ||
Чтобы установить блоку модель ICRender используется метод | Чтобы установить блоку модель ICRender используется метод | ||
<p style="margin-top:0cm; margin-right:3.2pt; margin-bottom:7.85pt; margin-left:0cm; text-align:justify"><span style="text-justify:inter-ideograph"><span style="line-height:108%">''BlockRenderer.setStaticICRender(id, data, model) - ''где id и data - целевой блок (если надо установить для любого значения data, вместо него нужно передать -1), а model - модель ICRender.</span></span></p> | <p style="margin-top:0cm; margin-right:3.2pt; margin-bottom:7.85pt; margin-left:0cm; text-align:justify"><span style="text-justify:inter-ideograph"><span style="line-height:108%">''BlockRenderer.setStaticICRender(id, data, model) - ''где id и data - целевой блок (если надо установить для любого значения data, вместо него нужно передать -1), а model - модель ICRender.</span></span></p> | ||
Пример: | Пример: | ||
− | < | + | |
− | + | <span style="line-height:108%">''BlockRenderer.setStaticICRender(BlockID.testRenderBlock, -1, icRenderModel); // после этого требуемый блок будет иметь созданную ранее модель''</span> | |
− | + | ||
== Маппинг рендера'' == | == Маппинг рендера'' == | ||
Строка 79: | Строка 78: | ||
Без дополнительных действий такой вызов ничем не будет отличаться по действию от вызова ''BlockRenderer.setStaticICRender. ''Для маппинга используются следующие методы: | Без дополнительных действий такой вызов ничем не будет отличаться по действию от вызова ''BlockRenderer.setStaticICRender. ''Для маппинга используются следующие методы: | ||
− | <span style="line-height:108%">BlockRenderer.mapAtCoords(x, y, z, model) - устанавливает данную модель ICRender на данные координаты, любой блок, для которого включен маппинг и который стоит на этих координатах, будет иметь эту модель.</span> | + | <span style="line-height:108%">''BlockRenderer.mapAtCoords(x, y, z, model) - устанавливает данную модель ICRender на данные координаты, любой блок, для которого включен маппинг и который стоит на этих координатах, будет иметь эту модель.''</span> |
− | <span style="line-height:108%"> | + | <span style="line-height:108%">''BlockRender.unmapAtCoords(x, y, z) - отменяет действие предыдущей функции на данных координатах, возвращая стандартную модель любого блока.''</span> |
<u style="text-underline:black">Важно отметить:</u> '' '' | <u style="text-underline:black">Важно отметить:</u> '' '' |