22.06.2017 / 17:40 | |
Death Пользователь Сейчас: Offline
Имя: Смерть Регистрация: 31.07.2015
| - Поменял текстуры. Вытащил из ванильного майнкрафта. - Сделал генерцию пещер. На данный момент просто вырезает ту область, в которой ему дали работать(микро-биому).
__________________
Смерть правит миром
Прикрепленные файлы: Скриншот 22-06-(…).png (23.83 кб.) Скачано 710 раз |
22.06.2017 / 19:45 | |
vh180477 Пользователь Сейчас: Offline
Имя: Валерка Откуда: Костомукша Регистрация: 03.11.2015
| Цитата HeWeD: Death, а теперь сделай чтобы он по выбору был прозрачным или непрозрачным Владик не обращай внимания на придурка. Это местный дурачок, пишет фигню и Ава соответсвует. Я в августе буду дома, затестю и покажу тебе свой дум!!! |
22.06.2017 / 19:56 | |
Death Пользователь Сейчас: Offline
Имя: Смерть Регистрация: 31.07.2015
| Цитата vh180477: Владик...Ещё один. Я не Владик!!! Влад - Владислав. Вова - Владимир.
Друзья, что можно ещё в игру добавить/изменить/убрать?
__________________
Смерть правит миром |
22.06.2017 / 20:47 | |
Death Пользователь Сейчас: Offline
Имя: Смерть Регистрация: 31.07.2015
| Решил сделать тени... Свет.
Добавил уровень. Сделал ячейку света. Поколдовал...
Честно, это ужасс. Когда у меня была система отчёта с верхнего левого угла, это приметивное свичение с "космоса" работало. А сейчас... Колдовал с "+" и "-". Менял параментры... Такое можно видеть только в баганутом реальном апокалипсисе.
Надо бы почитать про свет что нибуть... Вровнем его делать - приметивно. Нужно что-то реально современное. Только шедеры для меня очень сложно. Но возможно. Но это не выход.
__________________
Смерть правит миром |
22.06.2017 / 21:59 | |
DominaN Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Смоленск Регистрация: 28.09.2011
| Death, лайтмапой делай, как у меня в старой демке
|
22.06.2017 / 22:10 | |
Alexandr Пользователь Сейчас: Offline
Имя: Александр Откуда: Днепр Регистрация: 01.07.2012
| и мне покажите реализацию лайтмапы |
22.06.2017 / 22:11 | |
Death Пользователь Сейчас: Offline
Имя: Смерть Регистрация: 31.07.2015
| Цитата Alexandr: и мне покажите реализацию лайтмапы Мне то же! Ибо то что в той демки было, там через шедер, мне то вообще не подходит. __________________
Смерть правит миром |
22.06.2017 / 22:16 | |
DominaN Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Смоленск Регистрация: 28.09.2011
| В той было не через шейдер, а через мультитекстуру
|
22.06.2017 / 22:20 | |
DominaN Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Смоленск Регистрация: 28.09.2011
| Вот тебе с тенями даже Открыть спойлер Закрыть спойлер public void render() {
//We need clear framebuffers to correct layers drawing
Renderer.clear();
Renderer.fillRect(0, 0, EngineRuntime.screen_width, EngineRuntime.screen_height, Color.black);
//Clip render frame if world smaller, then screen
//DANGER: operations order is magic, do not change that!!!
if (clip_world) {
int clip_x = (camera.getWorldX() < 0) ? (int) -camera.getWorldX() : 0;
int clip_y = (camera.getWorldY() < 0) ? (int) -camera.getWorldY() : 0;
int clip_w = EngineRuntime.screen_width;
int clip_h = EngineRuntime.screen_height;
if (camera.getWorldX() + camera.getWidth() > world_width) clip_w = (int)(world_width - camera.getWorldX());
if (camera.getWidth() > world_width) clip_w = world_width;
if (camera.getWorldY() + camera.getHeight() > world_height) clip_h = (int)(world_height - camera.getWorldY());
if (camera.getHeight() > world_height) clip_h = world_height;
Renderer.clipRect(clip_x, clip_y, clip_w, clip_h);
}
//Render frame
Renderer.setCamera(getCamera());
//Render light
Renderer.setTarget(fb_light);
fb_light.clear(ambient);
if (Renderer.r_lightning) {
for (Light l : getLights()) {
Renderer.setBlending(BlendingMode.BLEND_ADDITIVE);
Renderer.setShader(null);
l.render();
if (!l.touched.is_empty()) {
Renderer.setBlending(BlendingMode.BLEND_ALPHA);
Renderer.setShader(default_shader);
default_shader.setUniform("u_color", ambient.r, ambient.g, ambient.b, 1f);
default_shader.setUniform("u_coloronly", true);
for (Entity e : l.touched.get_all())
if (e.layer < l.layer) e.render();
}
}
}
//Render world & shadows
Renderer.setTarget(fb_world);
fb_world.clear(Color.black); //Black color is important!
Renderer.setBlending(BlendingMode.BLEND_ALPHA);
Renderer.setShader(default_shader);
default_shader.setUniform("u_coloronly", false);
if (Renderer.r_diffuse) for (Tiles t : getTiles()) t.render();
for (Entity e : getVisible()) {
if (!(e instanceof Light)) {
if (Renderer.r_shadows) e.renderShadow();
if (Renderer.r_diffuse) e.render();
}
}
//Merge it all together
Renderer.setOrtho(EngineRuntime.screen_width, EngineRuntime.screen_height);
//Soft-edged lightmap ( we need ortho mode for screenspace blur :) )
Renderer.setBlending(null);
Renderer.setShader(blur_shader);
blur_shader.setUniform("radius", 0.5f);
blur_shader.setUniform("resolution", (float) EngineRuntime.screen_width);
blur_shader.setUniform("dir", 0);
Renderer.setTarget(fb_tmp);
fb_tmp.clear();
fb_light.draw();
blur_shader.setUniform("resolution", (float) EngineRuntime.screen_height);
blur_shader.setUniform("dir", 1);
Renderer.setTarget(fb_light);
fb_tmp.draw();
Renderer.setTarget(null);
//Draw framebuffers
Renderer.setMultiTexture(0, fb_world.getTexture());
Renderer.setMultiTexture(1, fb_light.getTexture());
Renderer.setShader(scene_shader);
scene_shader.setUniform("u_scene", 0);
scene_shader.setUniform("u_lightmap", 1);
scene_shader.setUniform("u_grayscale", Renderer.r_grayscale);
Renderer.begin(Renderer.R_QUAD);
{
Renderer.setTexCoords(0, 1);
Renderer.setVertexCoords(0, 0);
Renderer.setTexCoords(1, 1);
Renderer.setVertexCoords(EngineRuntime.screen_width, 0);
Renderer.setTexCoords(1, 0);
Renderer.setVertexCoords(EngineRuntime.screen_width, EngineRuntime.screen_height);
Renderer.setTexCoords(0, 0);
Renderer.setVertexCoords(0, EngineRuntime.screen_height);
}
Renderer.end();
Renderer.setMultiTexture(1, null);
Renderer.setMultiTexture(0, null);
Renderer.setShader(null);
//For testing
if (Renderer.r_debug) {
Renderer.setCamera(camera);
for (Entity e : getVisible()) {
Renderer.drawShape(e.getBBOX(), Color.green);
Renderer.drawShape(e.getCBOX(), Color.yellow);
Renderer.drawShape(e.shadowbox, Color.blue);
Renderer.drawPoint(e.position, 3, Color.red);
}
float mx = EngineRuntime.getWorldMouseX();
float my = EngineRuntime.getWorldMouseY();
Renderer.fillRect((int) mx - 4, (int) my - 4, 8, 8, Color.blue);
Renderer.fillRect((int) (camera.getWorldX() + camera.getWidth() / 2) - 4, (int) (camera.getWorldY() + camera.getHeight() / 2) - 4, 8, 8, Color.violet);
}
}
|
23.06.2017 / 10:32 | |
Death Пользователь Сейчас: Offline
Имя: Смерть Регистрация: 31.07.2015
| Добавил опрос. Стоит ли мне бросить проект? Начать писать его заново или продолжить? Или же изучать и планировать другую игру, онлайн?
__________________
Смерть правит миром |