|
13.06.2009, 17:26
|
#61
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: создание 3Д движка на j2me
Свет у меня будет направленый т.к. это легче. Вот только не пойму как цвет делать темнее или светлее, если он хранится в одном int.
|
(Offline)
|
|
13.06.2009, 17:49
|
#62
|
ПроЭктировщик
Регистрация: 10.01.2009
Адрес: хз
Сообщений: 177
Написано 18 полезных сообщений (для 44 пользователей)
|
Ответ: создание 3Д движка на j2me
Кусок главы "Основы моделирования освещения и поверхностей тел" книги Ламота:
__________________
Я бы изменил мир, но Бог не даёт исходников...
|
(Offline)
|
|
13.06.2009, 19:51
|
#63
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: создание 3Д движка на j2me
Там расказывается как работать с цветом когда он задан тремя int. А когда он задан одним числом как его сделать темнее?
|
(Offline)
|
|
13.06.2009, 20:53
|
#64
|
ПроЭктировщик
Регистрация: 10.01.2009
Адрес: хз
Сообщений: 177
Написано 18 полезных сообщений (для 44 пользователей)
|
Ответ: создание 3Д движка на j2me
public class Color {
public int value;
public Color(){
value = 0;
}
public Color(int value){
this.value = value;
}
public Color(int r, int g, int b, int a){
value=a;
value<<=8;
value|=r;
value<<=8;
value|=g;
value<<=8;
value|=b;
}
public short getR(){
return (short)((value>>16)&255);
}
public short getG(){
return (short)((value>>8)&255);
}
public short getB(){
return (short)((value)&255);
}
public short getA(){
return (short)((value>>24)&255);
}
}
__________________
Я бы изменил мир, но Бог не даёт исходников...
|
(Offline)
|
|
14.06.2009, 02:02
|
#65
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: создание 3Д движка на j2me
Не пойму зачем в short конвертировать? Пусть бы int возращало. Хотя так памяти меньше берёт.
Кстати, ты тоже 3д движок делаеш?
Можеш объяснить почему некоторые движки медленные, а некоторые быстрые? Вроде все алгоритмы не засекречены и каждый может использовать лучший алгоритм, но нет, некоторые игры летают, а некоторые несмотря на свою простоту тормазят.
|
(Offline)
|
|
14.06.2009, 15:56
|
#66
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: создание 3Д движка на j2me
Можеш формулу написать как перемножать матрици 4*4. А то у меня какая-то фигня получается.
|
(Offline)
|
|
14.06.2009, 16:56
|
#67
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: создание 3Д движка на j2me
матрицЫ 4х4 перемножаются так:
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
14.06.2009, 17:06
|
#68
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: создание 3Д движка на j2me
Вот так выглядит цикл умножения:
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
14.06.2009, 18:02
|
#69
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: создание 3Д движка на j2me
Я не пойму. Есть у меня матрица matrix и matrixTemp. matrix я задаю z-позицию = 600. А matrixTemp задаю Х угол 5. Потом matrix умножаю на matrixTemp и matrix поворачивается, НО почему-то позиция становится = 0. По-моему этого не должно быть. Или должно?
|
(Offline)
|
|
14.06.2009, 18:18
|
#70
|
ПроЭктировщик
Регистрация: 10.01.2009
Адрес: хз
Сообщений: 177
Написано 18 полезных сообщений (для 44 пользователей)
|
Ответ: создание 3Д движка на j2me
Сообщение от WISHMASTER35
Не пойму зачем в short конвертировать? Пусть бы int возращало. Хотя так памяти меньше берёт.
Кстати, ты тоже 3д движок делаеш?
Можеш объяснить почему некоторые движки медленные, а некоторые быстрые? Вроде все алгоритмы не засекречены и каждый может использовать лучший алгоритм, но нет, некоторые игры летают, а некоторые несмотря на свою простоту тормазят.
|
Зависит от прямоты рук разработчика.
Сообщение от WISHMASTER35
Можеш формулу написать как перемножать матрици 4*4. А то у меня какая-то фигня получается.
|
public static Matrix4x4 operator *(Matrix4x4 left, Matrix4x4 right)
{
Matrix4x4 t = new Matrix4x4();
for (int i = 1; i <= 4; i++)
for (int j = 1; j <= 4; j++)
{
float r = 0;
for (int p = 1; p <= 4; p++)
r += left[i, p] * right[p, j];
t[i, j] = r;
}
return t;
}
На Java переводи сам... left и right - умножаемые матрицы, t - результат. Тут у класса матрицы есть двумерный индексатор, потому можно получить доступ к элементам как к двумерному массиву(например t[i, j]).
На сколько мне известно, разработчики Java сочли не нужной перегрузку операторов. Такчто придётся тебе попарится с переводом
__________________
Я бы изменил мир, но Бог не даёт исходников...
|
(Offline)
|
|
14.06.2009, 18:39
|
#71
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: создание 3Д движка на j2me
Вот http://upwap.ru/455066 сделал свет и матрицу. Но в матрице, в методе mul навернае какая-то ошибка т.к. модель постеменно сжимается. Можете проверить мою матрицу.
|
(Offline)
|
|
14.06.2009, 21:04
|
#72
|
ПроЭктировщик
Регистрация: 10.01.2009
Адрес: хз
Сообщений: 177
Написано 18 полезных сообщений (для 44 пользователей)
|
Ответ: создание 3Д движка на j2me
>Вот http://upwap.ru/455066
Где jar? >(
А что это у тебя за арифметика странная?? Почему везде int??
__________________
Я бы изменил мир, но Бог не даёт исходников...
|
(Offline)
|
|
14.06.2009, 21:21
|
#73
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: создание 3Д движка на j2me
jar в папке dist. Арифметика не странная, а с фиксированной точкой. Операции с float в раз 5 медленее.
И изменяется длинна вектора из-за моего фиксед поинт :-( . А float использовать - фпс сильно понизится. В матрице маскота тоже везде fixed point, и в матрице. И длинна векторов там почти не меняется.
Как вориант можно нормализировать длинну векторов, но это долго из-за корня. И это не выход т.к. нельзя будет масштабировать вектор. А в маскоте я вручную(умноженйем и делением) менял длинну вектора и она потом такой и оставалась т.е. не нормализировалась.
|
(Offline)
|
|
14.06.2009, 22:28
|
#74
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: создание 3Д движка на j2me
Я уже и float сделал, но всё равно модель постепенно сжимается. Может у меня не правельно умножаются матрицы?
|
(Offline)
|
|
15.06.2009, 00:03
|
#75
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: создание 3Д движка на j2me
Нашол ошибку. Не надо было изменения сразу же записывать.
Но теперь не пойму почему при умножении на матрицу переноса моя матрица не переносится. Вот http://upwap.ru/455417 посмотрите почему не работает матрица переноса.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:02.
|