Результаты поиска
| |
Alkosha | Дата: Среда, 07 Января 2015, 19:17 | Сообщение # 141 | Тема: Помогите рачитать оффсет отражённой текстуры. |
участник
Сейчас нет на сайте
| Хыыы... Прикольная апичатка в названии темы. Добавлено (07 января 2015, 19:17) --------------------------------------------- По совету Снэйка уже более-менее нормально работает. Только когда камера двигается по Y, отражённая текстура немного "плывёт". Зато по Z строго на фиксированном месте , как и положено. Может на текстуре "воды" нормально будет смотреться.
|
|
| |
Alkosha | Дата: Среда, 07 Января 2015, 20:09 | Сообщение # 142 | Тема: Помогите рачитать оффсет отражённой текстуры. |
участник
Сейчас нет на сайте
| Цитата DungeonLord (  ) dstrect.y= dstrect.y + 200 * cum.z - cum.y * 2;
В этом случае есть смещение при зуме.
|
|
| |
Alkosha | Дата: Среда, 07 Января 2015, 23:47 | Сообщение # 143 | Тема: Помогите рачитать оффсет отражённой текстуры. |
участник
Сейчас нет на сайте
| dstrect.y= dstrect.y + 10 * cum.z * cum.y - cum.y * 2 * cum.z;
ГИФ
dstrect.y= dstrect.y + 200 * cum.z - cum.y * 2;
ГИФ
dstrect.y= dstrect.y + 200 * cum.z - cum.y * 2 * cum.z;
ГИФ
|
|
| |
Alkosha | Дата: Четверг, 08 Января 2015, 11:38 | Сообщение # 144 | Тема: Помогите рачитать оффсет отражённой текстуры. |
участник
Сейчас нет на сайте
| Цитата HPlusDiese (  ) Весело.
Не пойму иронии. Вам известен иной метод? Изначально я зумил рендерер, но он масштабируется относительно начала декаротвых координат (левого верхнего угла), то есть мне нужно было дополнительно смещать объекты на игровом поле. Рендерить всё в текстуру и после этого извращаться с ней как угодно - гораздо проще.
|
|
| |
Alkosha | Дата: Четверг, 08 Января 2015, 13:07 | Сообщение # 145 | Тема: Помогите рачитать оффсет отражённой текстуры. |
участник
Сейчас нет на сайте
| Цитата DungeonLord (  ) чтобы отражение не наползало на оригинал
Не в этом дело. Я не планирую делать так, чтоб рокИр окунался по пояс в воду. Там просто когда камера двигается по Y само отражение немного тоже двигается.Добавлено (08 января 2015, 13:07) --------------------------------------------- Да ладно. И так сойдёт. Слишком много времени уделяю обычному не геймплейному декору.
|
|
| |
Alkosha | Дата: Пятница, 09 Января 2015, 20:06 | Сообщение # 146 | Тема: Помогите рачитать оффсет отражённой текстуры. |
участник
Сейчас нет на сайте
| Цитата HPlusDiese (  ) projection matrix
И ? чего-то не встречал в SDL-е ничего связанного с матрицами.
Цитата HPlusDiese (  ) Ты ещё наверное и на FFP всё делаешь?
Что за аббревиатура? Fixed Function Pipeline ?
Сообщение отредактировал Alkosha - Суббота, 10 Января 2015, 17:24 |
|
| |
Alkosha | Дата: Воскресенье, 11 Января 2015, 14:51 | Сообщение # 147 | Тема: Сегментная анимация. |
участник
Сейчас нет на сайте
| Разбил персонажа на отдельные спрайты-сегменты. Теперь надо бы заставить их слаженно двигаться. На мегадрайве зачастую была подобного рода анимация. Особенно в играх от Treasure: видео №1, видео №2 Или Konami: Видео №1, видео №2
На самом деле примеров куча. Но мне хотя бы без вращений осилить анимашку, и с гораздо меньшим количеством спрайтов.
Пока вот что получается (пока лишь на примере двух ключевых кадров): ГИФ
Мне кажется, сам подход не корректный. Код class myKingOfHell { SDL_Rect Dest; SDL_Texture* molottex; float molotx,moloty; SDL_Texture* torsotex; float torsox,torsoy; SDL_Texture* jawstex; float jawsx,jawsy; SDL_Texture* hooktex; float hookx,hooky;
int animkey; float dx,dy;
void endpoint(float nowX, float nowY, float endX, float endY, float speed) { auto angle=-atan2(nowX-endX,nowY-endY)/3.14*180; dx=sin(angle*3.14/180)*speed; dy=-cos(angle*3.14/180)*speed; }
public: float x=400,y; int state=1; // состояние 0=disable 1= idle 2= ползёт 3= атака
myKingOfHell() { animkey=0;
torsox=0; torsoy=0; molotx=15; moloty=190; jawsx=25; jawsy=100; hookx=110; hooky=100; }
void update() { if(state==1) { if(animkey==0) { endpoint(jawsx,jawsy,37,107,0.2); jawsx+=dx; jawsy+=dy;
endpoint(molotx,moloty,15,190,0.4); molotx+=dx; moloty+=dy;
endpoint(hookx,hooky,128,140,0.5); hookx+=dx; hooky+=dy; if(hookx>=128)animkey=1; }
if(animkey==1) { endpoint(jawsx,jawsy,25,100,0.2); jawsx+=dx; jawsy+=dy;
endpoint(molotx,moloty,20,200,0.2); molotx+=dx; moloty+=dy;
endpoint(hookx,hooky,110,100,1); hookx+=dx; hooky+=dy;
if(hookx<=110)animkey=0; }
} }
void display() { if(molottex==NULL) { molottex = IMG_LoadTexture(renderer, "img//koh1.png"); } if(torsotex==NULL) { torsotex = IMG_LoadTexture(renderer, "img//koh2.png"); } if(jawstex==NULL) { jawstex = IMG_LoadTexture(renderer, "img//koh3.png"); } if(hooktex==NULL) { hooktex = IMG_LoadTexture(renderer, "img//koh4.png"); }
Dest.x=molotx-cum.x+x; Dest.y=moloty-cum.y+y; Dest.w=341; Dest.h=208; if(Dest.x>-341&&Dest.x<800) { SDL_RenderCopy(renderer, molottex , NULL, &Dest); }
Dest.x=torsox-cum.x+x; Dest.y=torsoy-cum.y+y; Dest.w=554; Dest.h=453; if(Dest.x>-554&&Dest.x<800) { SDL_RenderCopy(renderer, torsotex , NULL, &Dest); } Dest.x=jawsx-cum.x+x; Dest.y=jawsy-cum.y+y; Dest.w=143; Dest.h=142; if(Dest.x>-143&&Dest.x<800) { SDL_RenderCopy(renderer, jawstex , NULL, &Dest); }
Dest.x=hookx-cum.x+x; Dest.y=hooky-cum.y+y; Dest.w=393; Dest.h=275; if(Dest.x>-393&&Dest.x<800) { SDL_RenderCopy(renderer,hooktex , NULL, &Dest); }
}
}; myKingOfHell KOH;
animkey = номер ключевого кадра. Функция endpoint() отвечает за перемещение отдельно взятого спрайта. Тут ещё вручную задаю скорость перемещения каждого. Было бы неплохо, если б скорость сама определялась между ключевыми кадрами. Добавлено (11 января 2015, 14:51) --------------------------------------------- Там когда сегмент достигает до конечной - дрожит. Размах этого дрожания зависит от скорости. Вот эту траблу надо бы убрать.
Сообщение отредактировал Alkosha - Воскресенье, 11 Января 2015, 13:54 |
|
| |
Alkosha | Дата: Воскресенье, 11 Января 2015, 21:42 | Сообщение # 148 | Тема: Моделирование "волос". (3ds max) |
участник
Сейчас нет на сайте
| Как замоделить волосы полигонами ? А самое главное, правильно затекстурить с альфа-каналом. И так, чтоб импортировать в дальнейшем в Юньку. Или может есть уже готовая модель волосни с ригом?
Волосы хочу примерно такие (только в 3д, разумеется):
|
|
| |
Alkosha | Дата: Суббота, 17 Января 2015, 16:50 | Сообщение # 149 | Тема: Концепт-арт |
участник
Сейчас нет на сайте
| Концепт к игре на хз-спектрум.
Сама игра: http://www.worldofspectrum.org/infoseekid.cgi?id=0027211
Добавлено (15 января 2015, 22:51) --------------------------------------------- Пропорции головы, кистей рук сейчас бы подправил. В 2011-ом ещё жутко косячил с человекоподобными пропорциями.
Добавлено (17 января 2015, 16:50) --------------------------------------------- 4 года назад назад рисовал концепты к игре, где в главной роли была бы тёлочка киборг. Но в тридэ даже спустя такое время не могу ничего толкового замоделить.
В частности застопорился на текстурировании, риггинге.
Сообщение отредактировал Alkosha - Суббота, 17 Января 2015, 16:50 |
|
| |
Alkosha | Дата: Вторник, 20 Января 2015, 00:19 | Сообщение # 150 | Тема: Code::Blocks + irrlicht |
участник
Сейчас нет на сайте
| Цитата set16 (  ) Как исправить?
пересобрать исходник под ту версию GCC, то работает в твоём код-блоксе. Не?
|
|
| |
Alkosha | Дата: Вторник, 10 Февраля 2015, 11:00 | Сообщение # 151 | Тема: Глитч SDL2 |
участник
Сейчас нет на сайте
| На разных компьютерах проверял работоспособность программы. Всё было гладенько. затем в моей программе появились операции с рендерингом в текстуру. Не знаю, дело ли в операционной системе, или же непосредственно в самихз драйверах. Короче, на компах с семёрками (32 и 64 битными) и восмёрками работает корректно (на двух ноутбуках проверял, и на одном десктопе.) Запускаю на одной машине с вин XP - программа тут же крашит при вызове функции TargetTexture. На другой машине с win XP - такие вот глюки получаются адовые: ГИФ
функция SDL_GetError на машинах, где 7-ки 8-ки - молчит. А на проблемных компах пишет примерно одно и то же в консоли:
Смена типа рендерера direct3d на opengl не помогает. Ошибка та же.
|
|
| |
Alkosha | Дата: Суббота, 14 Февраля 2015, 14:18 | Сообщение # 152 | Тема: Глитч SDL2 |
участник
Сейчас нет на сайте
| Не. По-моему, не ок. Речь идёт не о музыкальном жанре. Добавлено (10 февраля 2015, 13:27) --------------------------------------------- https://www.google.com/search?....Q_AUoAQ Добавлено (14 февраля 2015, 10:23) --------------------------------------------- Ещё на одном компе с XP крашит.
И ещё, вот к ноуту с 7-кой прицепил моник по HDMI, в оконном режиме нормально, а в фуллскрине такая бадяга: Добавлено (14 февраля 2015, 10:24) --------------------------------------------- как-то оно тайлами глючит. Добавлено (14 февраля 2015, 14:18) --------------------------------------------- Ага. Дело даже не в подключении внешнего моника. даже на дисплее самого ноута такой глюк при фуллскрине. Причём глючит если в цикле дэстроить таргет-текстуру. Методом втыка решил проблему. Заменил параметр SDL_TEXTUREACCESS_TARGET на SDL_TEXTUREACCESS_STATIC, и теперь в цикле не надо каждый раз создавать и удалять текстуру.
Но это что касается глюка в фуллскрине. На XP ещё не проверял.
|
|
| |
Alkosha | Дата: Воскресенье, 01 Марта 2015, 17:12 | Сообщение # 153 | Тема: Работы новичков |
участник
Сейчас нет на сайте
| Концепт-арт к "Металикс-зоне"
Сообщение отредактировал Alkosha - Воскресенье, 01 Марта 2015, 18:50 |
|
| |
Alkosha | Дата: Суббота, 14 Марта 2015, 12:39 | Сообщение # 154 | Тема: Работы в 3D |
участник
Сейчас нет на сайте
| Топология немного шляпа. Но это первый персонаж, которого замоделил (правда ещё не ригил и не текстурил)
Сообщение отредактировал Alkosha - Суббота, 14 Марта 2015, 12:40 |
|
| |
Alkosha | Дата: Четверг, 26 Марта 2015, 15:07 | Сообщение # 155 | Тема: Как настроить кодблокс на компиляцию SDL2 на убунте? |
участник
Сейчас нет на сайте
| Девайс - ноутбук.. Версия Ubuntu - 14.04 (32бита) проц - AMD Athlon II P360 Dual-Core Processor × 2 Графический драйвер Gallium 0.4 on AMD CEDAR
IDE кодблокс 13.12
Как настроить проект на компиляцию SDL2 ?
Сообщение отредактировал Alkosha - Четверг, 26 Марта 2015, 15:08 |
|
| |
Alkosha | Дата: Суббота, 28 Марта 2015, 23:23 | Сообщение # 156 | Тема: Движок Irrlicht |
участник
Сейчас нет на сайте
| Реально ли в иррке сделать глобальное освещение так,чтоб вектор источника света и интенсивность были одинаковы на всех объектах на сцене?
|
|
| |
Alkosha | Дата: Воскресенье, 29 Марта 2015, 09:53 | Сообщение # 157 | Тема: Движок Irrlicht |
участник
Сейчас нет на сайте
| Цитата HPlusDiese (  ) Можно
А каким образом? Стандартными средствами можно или только через шреддеры?
|
|
| |
Alkosha | Дата: Четверг, 02 Апреля 2015, 23:03 | Сообщение # 158 | Тема: Движок Irrlicht |
участник
Сейчас нет на сайте
| А в иррлихте есть среди стандартных примитивов что-то типа plane ? Как есть, например, CubeSceneNode или SphereSceneNode. Вот нужно такое же, только ректангл. Конечно можно воспользоваться кубом, и отскейлить его по одной оси в значение 0. Но в таком случае видяха будет рисовать 16 трианглов, тогда как для обычной прямоугольной плоскости достаточно двух трианглов.Добавлено (02 апреля 2015, 23:03) --------------------------------------------- Как ноды скомпоновать в мэшбуфер ? Чтоб комп обрабатывал массив нод не как массив, а как цельный меш?
|
|
| |
Alkosha | Дата: Суббота, 04 Апреля 2015, 10:47 | Сообщение # 159 | Тема: Как вычислить приращения по осям координат? |
участник
Сейчас нет на сайте
| Цитата Archido (  ) У тебя координаты объектов во флоатах я надеюсь? В добавок стоит заменить неоднозначные auto на float в коде выше.
да, во флоатах. На счёт неявного типа переменной С++11 я в курсе.
Добавлено (24.10.2014, 15:33) --------------------------------------------- Цитата OpenGOO (  ) Проверил твой код, при скорость равно 20, объект движется туда куда его послали, а не наоборот. Ладно. Буду глядеть дальше. Может где в скриптах с условиями допустил ошибку. Спасибо.
Добавлено (28 января 2015, 19:42) --------------------------------------------- Вот интересно. (x1, y1) - пункт отправления (x2, y2) - пункт назначения speed - скорость объекта
то есть speed - это шаг.
Но допустим, если speed >1 то конечная остановка будет с погрешностью.
Дело в том, что моя сегментная анимация (http://gcup.ru/forum/7-42764-1) сейчас по такому принципу работает.
то есть. каждый сегмент направляется по своим местам. Но если скорость большая (больше единицы), то получается дрожание: https://vk.com/doc5385....2&wnd=1Добавлено (04 апреля 2015, 10:47) --------------------------------------------- ап
Сообщение отредактировал Alkosha - Суббота, 04 Апреля 2015, 10:47 |
|
| |
Alkosha | Дата: Вторник, 21 Апреля 2015, 23:40 | Сообщение # 160 | Тема: Динамическое изменение двумерного вектора |
участник
Сейчас нет на сайте
| Матрица двумерного массива объявлена так: Код size_t row = mapsizeX; size_t col = mapsizeY; vector<vector<int> > matrixfloor(row);
при первой инициализации заполняю так (например рандомом) Код for(size_t i = 0; i < row; i++) { matrixfloor[i].resize(col); for(size_t j = 0; j < col; ++j) matrixfloor[i][j] = rand() % 4; }
Теперь чтобы изменить размер матрицы по высоте (клавишами 2 и 8) Код if(keys[SDL_SCANCODE_KP_8]) {
mapsizeY--;
for(size_t i = 0; i < mapsizeX; i++) { matrixfloor[i].resize(mapsizeY);
}
SDL_Delay(100); } if(keys[SDL_SCANCODE_KP_2]) { mapsizeY++; for(size_t i = 0; i < mapsizeX; i++) { matrixfloor[i].resize(mapsizeY);
} SDL_Delay(100); }
А вот по ширине когда пытаюсь изменить размер - fatal error Код if(keys[SDL_SCANCODE_KP_6]){mapsizeX++;
for(size_t i = 0; i < mapsizeX; i++) { matrixfloor[i].resize(mapsizeY);
} SDL_Delay(100);} if(keys[SDL_SCANCODE_KP_4]){mapsizeX--; for(size_t i = 0; i < mapsizeX; i++) { matrixfloor[i].resize(mapsizeY);
}
SDL_Delay(100);}
|
|
| |
|