Текущее время: Сб 25 янв 2025 22:36

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 567 ]  На страницу Пред.  1 ... 6, 7, 8, 9, 10, 11, 12 ... 19  След.
Автор Сообщение
 Сообщение Пн 9 апр 2012 8:18
Профиль  
Механоид 4 поколения
Аватара пользователя
Сообщения: 680
Зарегистрирован: Вс 2 янв 2011 8:15
Здорово, потестим.
Это же будет гольный движок с парой моделек, максимум альфа, да?

_________________
Following our will and wind
We may just go where no one's been
We'll ride the spiral to the end
We may just go where no one's been


 Сообщение Пн 9 апр 2012 10:20
Профиль  
Трёхмерный
Аватара пользователя
Сообщения: 3622
Зарегистрирован: Пн 17 янв 2005 19:23
Нет. Локации, глайдеры, скрипты, враги, шейдеры, звук, оружие(но не обычное)...

_________________
https://sites.google.com/site/intelligencecells
http://www.youtube.com/user/IntelligenceCells


 Сообщение Пн 9 апр 2012 12:39
Профиль  
Механоид 4 поколения
Аватара пользователя
Сообщения: 680
Зарегистрирован: Вс 2 янв 2011 8:15
Это же просто здорово! Ждем с нетерпением.
Главное, чтобы Скайриверы не просекли и не надрали тебе задницу за нарушение копирайтов :teeth:

_________________
Following our will and wind
We may just go where no one's been
We'll ride the spiral to the end
We may just go where no one's been


 Сообщение Пн 9 апр 2012 14:30
Профиль  
#105d99
Аватара пользователя
Сообщения: 15233
Откуда: Москва, сектор бетонных домов
Зарегистрирован: Пн 20 фев 2006 3:56
Да в гробу мы эти копирайты видали. И в белых тапках.


 Сообщение Пн 9 апр 2012 14:30
Профиль  
МехоВед
Аватара пользователя
Сообщения: 7132
Зарегистрирован: Пн 7 ноя 2005 11:30
Не коммерческий же проект. Нечего бояться.

_________________
Тысячи часов поиска и все впустую.


 Сообщение Пн 9 апр 2012 17:02
Профиль  
Механоид 5 поколения
Аватара пользователя
Сообщения: 4676
Зарегистрирован: Вс 29 авг 2010 18:18
ДА И ВАЩЕ!

_________________
GAMES ARE ONLY FUN IF THEY HURT A LITTLE BIT


 Сообщение Вт 10 апр 2012 0:08
Профиль  
Трёхмерный
Аватара пользователя
Сообщения: 3622
Зарегистрирован: Пн 17 янв 2005 19:23
Шаман!....
Сделай хоть что-то на благо самодельного М3.

Рассчитай тангент.
И за одно нормали, есть подозрение что я не правильно их расчитываю.

class C_Vector2
{
public:
float u;
float v;
};

class C_Vector3
{
public:
GLfloat x;
GLfloat y;
GLfloat z;
};

class C_Face
{
public:
unsigned short a;
unsigned short b;
unsigned short c;
};

class C_Mesh
{
public:
unsigned short int iVertex;
C_Vector3 * pVertex;

unsigned short int iNormal;
C_Vector3 * pNormal; // Надо рассчитать

unsigned short int iTangent;
C_Vector3 * pTangent; // Надо рассчитать

unsigned short int iTextCoord;
C_Vector2 * pTextCoord;

unsigned short int iFace;
C_Face * pFace;
};

_________________
https://sites.google.com/site/intelligencecells
http://www.youtube.com/user/IntelligenceCells


 Сообщение Вт 10 апр 2012 15:07
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Товарисч, есть же элегантный векторный синтаксис GLSL, которым ты пользуешься при написании шейдеров. Тебе никогда не приходило в голову создать хеадер с описанием классов vec2, vec3, ivec3, функций cross, normalize и т.п.? Зачем выдумывать аналоги?

перпендикуляр к треугу с вершинами
vec3 a,b,c;
рассчитывается так:
vec3 Perp=cross(b-a,c-a);
Когда рассчитаешь все перпендикуляры, начинай сглаживать: для каждой вершины, юзаемой несколькими треугами, складывай перпендикуляры к этим треугам, а затем нормализуй полученный вектор, и получишь нормаль единичной длины.

Теперь тангента и бинормаль. Положим у тебя есть три вершины (a,b,c). У каждой из вершин есть следующие известные аттрибуты:

Вершина a:
vec2 at; //Две текстурные координаты (x,y)
vec3 an; //Координаты нормали (x,y,z)
vec3 av; //Координаты вершины (x,y,z)
Вершина b:
...
...
...
Вершина с:
...
...
...

Рассчитаем тангенту и бинормаль к вершинам а,b,c:


vec2 abt = bt - at;
vec3 abv = bv - av;
vec2 act = ct - at;
vec3 acv = cv - av;
float S=cross(abt,act);
vec3 Tangent = (abv*act.y - acv*abt.y) / S;
vec3 Binormal = (acv*abt.x - abv*act.x) / S;
aTangent = normalize(cross(cross(an,Tangent ),an));
aBinormal = normalize(cross(cross(an,Binormal ),an));
bTangent = normalize(cross(cross(bn,Tangent ),bn));
bBinormal = normalize(cross(cross(bn,Binormal ),bn));
aTangent = normalize(cross(cross(cn,Tangent ),cn));
aBinormal = normalize(cross(cross(cn,Binormal ),cn));

Усреднять тангенты и бинормали для общих вершин очень желательно.

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Вт 10 апр 2012 16:00
Профиль  
Трёхмерный
Аватара пользователя
Сообщения: 3622
Зарегистрирован: Пн 17 янв 2005 19:23
Т.е. ты не хочешь писать код!

_________________
https://sites.google.com/site/intelligencecells
http://www.youtube.com/user/IntelligenceCells


 Сообщение Вт 10 апр 2012 17:53
Профиль  
Механоид 5 поколения
Аватара пользователя
Сообщения: 4676
Зарегистрирован: Вс 29 авг 2010 18:18
Take this!

Изображение

_________________
GAMES ARE ONLY FUN IF THEY HURT A LITTLE BIT


 Сообщение Вт 10 апр 2012 18:14
Профиль  
Трёхмерный
Аватара пользователя
Сообщения: 3622
Зарегистрирован: Пн 17 янв 2005 19:23
2 Шаман
Что ты написал, называется "отстань...".

_________________
https://sites.google.com/site/intelligencecells
http://www.youtube.com/user/IntelligenceCells


 Сообщение Ср 11 апр 2012 15:00
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Т.е. ты не хочешь разбираться в написанном!
2 smt005
Как ты отреагировал, называется "мне впадлу думать..."

Блин. Времени не было. И сегодня нет. Пока что могу помочь библиотекой, эмулирующей GLSL:
GLSL.h
В хеадере описаны классы векторов
vec2, vec3, vec4
dvec2, dvec3, dvec4
ivec2, ivec3, ivec4
матриц
mat3
mat4
и функций (в основном ассемблернутых)
cross
length
dot
distance
normalize
min
max
clamp
determinant
inverse
а также операторы для векторов и матриц (сложение/вычитание векторов, умножение матрицы на вектор).
Теоретиццки, с этим хеадером можно писать код проги с синтаксисом шейдеров. Это моя любимая библиотека - я на ней всю геометрию верчу. И дополняю периодиццки. Без неё как без рук. Советую.

Добавлено спустя 3 минуты 13 секунд:

Кстати, насколько я помню, в 3DSMAX есть плагины для автовычисления тангент и бинормалей. Зачем тебе самому париться?

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Ср 11 апр 2012 16:57
Профиль  
Трёхмерный
Аватара пользователя
Сообщения: 3622
Зарегистрирован: Пн 17 янв 2005 19:23
Шаман писал(а):
Как ты отреагировал, называется "мне впадлу думать..."
Нет.
Даже если бы я точно понимал как расчитать тангент и бинормаль, надо тратить время на написание и отладку кода.
И то время которое я мог бы сэкономить, ушло бы на другое.

Шаман писал(а):
Кстати, насколько я помню, в 3DSMAX есть плагины для автовычисления тангент и бинормалей. Зачем тебе самому париться?
Потомучто изначальный формал файлов модели "3DS". А ещё отдельную тележку к загрузке моделей неохото делать.

_________________
https://sites.google.com/site/intelligencecells
http://www.youtube.com/user/IntelligenceCells


 Сообщение Чт 12 апр 2012 0:13
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Блин, бизнессмен. Я-то думал, тебе интересно программить.

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Чт 12 апр 2012 2:34
Профиль  
Трёхмерный
Аватара пользователя
Сообщения: 3622
Зарегистрирован: Пн 17 янв 2005 19:23
Мне интересно програмить, не ещё больше интересно завершить проект.
Какой смысл делать что-то если это никогда не закончиш?

_________________
https://sites.google.com/site/intelligencecells
http://www.youtube.com/user/IntelligenceCells


 Сообщение Чт 12 апр 2012 5:50
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Попробуем ещё разок - я подумал. :teeth:
smt005 писал(а):
class C_Vector2
{
public:
float u;
float v;
};

class C_Vector3
{
public:
GLfloat x;
GLfloat y;
GLfloat z;
};

class C_Face
{
public:
unsigned short a;
unsigned short b;
unsigned short c;
};

class C_Mesh
{
public:
unsigned short int iVertex;
C_Vector3 * pVertex;

unsigned short int iNormal;
C_Vector3 * pNormal; // Надо рассчитать

unsigned short int iTangent;
C_Vector3 * pTangent; // Надо рассчитать

unsigned short int iTextCoord;
C_Vector2 * pTextCoord;

unsigned short int iFace;
C_Face * pFace;
};


Тангента, бинормаль и нормаль рассчитываются не для каждой отдельной вершины, а для всего треугольника на основе координат его вершин и их текстурных координат. Т.е. первоначально эти три вектора одинаковы у всех трёх вершин каждого треуга. Это значит, что тебе нужно временно создать ещё три массива C_Vector3 (vec3) для нормалей, бинормалей и тангент каждого фэйса (треуга).

1) Три массива той же размерности, что и массив треугов (их число у тебя == iFace, да?).
Во:


unsigned short int iFace;
C_Face * pFace;
C_Vector3 * pFaceNormal;
C_Vector3 * pFaceTangent;
C_Vector3 * pFaceBinormal;


Эти три массива тебе понадобятся лишь на стадии рассчёта ТБН, т.е. это временные массивы. Так что имеет смысл НЕ держать их в классе модели.

2) Дальше ты циклом проходишь все треуги и вычисляешь для каждого из них нормаль, тангенту и бинормаль, заполняя вышеуказанные массивы. Если ты всё ещё не втыкнул, как вычисляются эти три вектора, распишу подробнее. А так - лень. :smile:

3) Сперва обращу внимание на неувязочку:
smt005 писал(а):
unsigned short int iVertex;
...
unsigned short int iNormal;
...
unsigned short int iTangent;
...
unsigned short int iTextCoord;
Вопрос: а разве все четыре счётчика могут быть не равны? :hm: Думаю, ты очепятался. Так что я предположу, что количество вершинных аттрибутов равно количеству вершин и оно есть iVertex. Оки?

Вычисляешь ТБН для каждой вершины:

Код:
//Берёшь по-порядку каждую вершину...
for(int v=0;v<iVertex;v++){

//Создаёшь "контейнеры" для вычисляемых аттрибутов:
C_Vector3 normal(0,0,0), binormal(0,0,0), tangent(0,0,0);

//Ищешь эту вершину в каждом треуге...
for(int f=0;f<iFace;f++)if(pFace[f].a==v||pFace[f].b==v||pFace[f].c==v){
//Нашлась? Суммируем векторочки, "сливая" треуги...
normal+=pFaceNormal[f];
tangent+=pFaceTangent[f];
binormal+=pFaceBinormal[f];
}

//Нормализуем полученные вектора и можно переходить к следующей вершине:
pNormal[v]=normalize(normal);
pTangent[v]=normalize(tangent);
pBinormal[v]=normalize(binormal);
}


Добавлено спустя 59 минут 31 секунду:

Победю лень и допишу алгоритм вычисления нормали, тангенты и бинормали для каждого треуга:

Код:
//Берёшь по-порядку каждый треуг...
for(int f=0;f<iFace;f++){
//Вычисляешь два вектора, этот треуг образующих (в вершинном и текстурном пространствах):
C_Vector3 av = pVertex[pFace[f].a] - pVertex[pFace[f].c];
C_Vector3 bv = pVertex[pFace[f].b] - pVertex[pFace[f].c];
C_Vector2 at = pTextCoord[pFace[f].a] - pTextCoord[pFace[f].c];
C_Vector2 bt = pTextCoord[pFace[f].b] - pTextCoord[pFace[f].c];
//Ещё понадобится кое-что:
double div = 1.0/(at.x*bt.y - at.y*bt.x);
//Теперь можно вычислить нормаль, тангенту и бинормаль для треуга:
pFaceNormal[f]=normalize(cross(av,bv));
pFaceTangent[f]=normalize((av*bt.y - bv*at.y)*div);
pFaceBinormal[f]=normalize((bv*at.x - av*bt.x)*div);
}//Следующий треуг гоу!

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Чт 19 апр 2012 14:26
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Ну, чё там у тебя? :nipri4em:

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Чт 19 апр 2012 17:27
Профиль  
Трёхмерный
Аватара пользователя
Сообщения: 3622
Зарегистрирован: Пн 17 янв 2005 19:23
Что ты имееш в виду? С бинормалями и тангентами? Ничего. В этом проекте они не будут расчитываться.

_________________
https://sites.google.com/site/intelligencecells
http://www.youtube.com/user/IntelligenceCells


 Сообщение Сб 21 апр 2012 10:03
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Ну ты жив хоть - и то хорошо. А то я подумал, что в кому впал. :smile:

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Вс 29 апр 2012 1:05
Профиль  
Трёхмерный
Аватара пользователя
Сообщения: 3622
Зарегистрирован: Пн 17 янв 2005 19:23
2 Шаман
Ты помнится говорил что у модели кол-во вершин, нормалей и текстурных координат одинаково.

Так вот как ты пользовался (деферред шейдингом) моделью ястреба (*OBJ файл) который я тебе давал?
В файле ведь:
# 1376 vertices
# 2399 vertex normals
# 1222 texture coords
# 2532 faces
.

_________________
https://sites.google.com/site/intelligencecells
http://www.youtube.com/user/IntelligenceCells


 Сообщение Пн 30 апр 2012 3:47
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Гы, ты меня на секунду аж в ступор ввёл. :smile:
У меня там котовасия: сначала я заполняю три временных массива - вершин, нормалей и текстурокоординат - данными из файла. Затем я создаю временный массив треугов (размерности равной количеству фэйсов), содержащий смешанные данные по каждой вершине, вытягивая их по индексам из соответствующих массивов. После этого массивы аттрибутов удаляю. Затем я вычисляю тангенты и бинормали для каждого треуга. И после этого я пересоздаю массивы аттрибутов снова - теперь размерность каждого массива аттрибутов равна тройной размерности массива фэйсов, плюс имею ещё массивы бинормалей и тангент впридачу.
Ну а как иначе?

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Пн 30 апр 2012 11:44
Профиль  
Трёхмерный
Аватара пользователя
Сообщения: 3622
Зарегистрирован: Пн 17 янв 2005 19:23
Ну так кол-во нормалей и текс. координат отличается от вершин.

_________________
https://sites.google.com/site/intelligencecells
http://www.youtube.com/user/IntelligenceCells


 Сообщение Пн 30 апр 2012 18:00
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Рукалицо! Что я выше написал?! Если несколько фэйсов юзают один и тот же индекс нормали, то смешанный массив треугов содержит одни и те же данные нормали в нескольких местах - дупликация же.
Идея с индексами в ОБЖ файлах - это способ уменьшения размера файла (т.е. сжатие). Каждая нормаль может занимать под 30+ байт данных, а индекс нормали - это пара-тройка байт. Посему треуги модели имеют индексацию аттрибутов - чтобы замест повторения огромного массива данных каждой нормали повторять лишь её индекс.
Сначала нужно данные загрузить, затем распаковать - заменить индексы реальными данными. А после этого можно уже переконвертировать данные в тот вид, что требуется (снова распихать по массивам аттрибутов).

Вообще, ОБЖ-формат файла сакс. Потомучто текстовый. Ты, вроде, другой юзаешь? 3DS, если я не ошибаюсь? Или свой изобрёл? Опиши вкратце, плиз (ну только если время есть :angel: ).

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Пн 30 апр 2012 18:25
Профиль  
Трёхмерный
Аватара пользователя
Сообщения: 3622
Зарегистрирован: Пн 17 янв 2005 19:23
В 3DsMax 8 можно было сохранить OBJ так чтобы кол-во вершин, нормалей и текс. координат были одинаково а в 3DsMax 10 уже нельзя. Сейчас юзаю 3DS, но он плох тем что он не хранит нормали.
Свой конечно изобрёл, ещё до того как разобрался в 3DS.
Назвай "3DK", там всё просто. В кратце.
В начале "шапка" о том чего и сколько хранится в файле. А потом читаются данные, записываются сразу в массивы формы модели.

_________________
https://sites.google.com/site/intelligencecells
http://www.youtube.com/user/IntelligenceCells


 Сообщение Пн 30 апр 2012 18:27
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Я вот думаю над универсальным форматом файла. Как обычно, без велосипеда не обошлось - нечто схожее с 3DS, походу, получилось.
Мысля такая: файл состоит из кусков, каждый из которых имеет заголовок (12 байт), содержащий константу-идентификатор типа данных куска (первые 4 байта), уникальное имя куска (следующие 4 байта - это на предмет наличия нескольких кусков одного типа - чтоб их различать), а также размер куска (последние 4 байта заголовка). Соответственно, такой файл может содержать данные любого вида: если программа-загрузчик не опознаёт тип данных куска, она его проскакивает, ссылаясь на размер куска, и переходит к следующему. И так пока не наткнётся на кусок опознаваемого типа.

К примеру, кусок, содержащий массив вершинных координат:
{0x00000001}: тип данных 1 - это массив вершин в формате float3
{0x00000000}: идентификатор куска - 0. Это может значить, например, что данный массив вершин предназначен для нулевого уровня детализации модели.
{0x00000010}: размер куска - 16 байт.
{...}: сам кусок (массив вершин). Первыми 4мя байтами в куске будет количество вершин, остальные - это череда xyz. Судя по примеру, в массиве может уместиться лишь одна вершина.

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Пн 30 апр 2012 21:34
Профиль  
Трёхмерный
Аватара пользователя
Сообщения: 3622
Зарегистрирован: Пн 17 янв 2005 19:23
Если делать универсальный формат, то нормально. Но для быстроты лучше делать конкретный формал. В 3DS и "твоём" формате нужно искать нужный участок а в моём уже всё известно. И у моего формала все данные нужны, т.е. никакой универсльности не надо.

В твоём случае, опять же можно в начале файла записывать всю инфу о файле. Загружаеш шапку в которой указано где и в каком объёме что лежит.

Добавлено спустя 1 час 17 минут 46 секунд:

2 Шаман
http://www.gamedev.ru/code/articles/GPSM
Сам нещё не читал, но думаю тебе будет интересно.

Посмотри видео вконце статьи.

_________________
https://sites.google.com/site/intelligencecells
http://www.youtube.com/user/IntelligenceCells


 Сообщение Пн 30 апр 2012 22:48
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Не бери в голову. Это уже отчаянная теневая алхимия и поиски Святого Грааля. Извращаться можно сколько угодно, а минусы у любого метода найдутся. А раз так, то единственное, что имеет значение - простота реализации. Спорно, конечно. Но я на абсолютном методе теневых карт крест поставил. Мана- и время-убийственно.
Юзай обычные тени. Апгрэйд до трапециидальных при желании оттуда будет не сложен. Вот каскадные - с другой стороны баррикад, ибо многопроходный метод. Количество активных текстур лимитировано, посему, ИМХО, каскадные всё же сакс, ибо занимать большую часть текстур под теневые карты - это дико.
smt005 писал(а):
Посмотри видео вконце статьи.
Любой новомодный метод имеет впечатляющий видос в пример. Толку-то, если реализация невнятная? Я не до конца втыкнул, но моя интуиция уже тонгует ( :tongue2: ).
Спсб, в любом случае - с этим типом теневого извращения я знаком не был. :smile:

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Вт 1 май 2012 12:35
Профиль  
Трёхмерный
Аватара пользователя
Сообщения: 3622
Зарегистрирован: Пн 17 янв 2005 19:23
Конечно любой метод имеет недостатки, но тень с обычной, одной картой тени точно не подойдёт для больших пространств.

Если интересна графика, можеш посмотреть на обзор еффектов игры Crysis 2.
http://www.nvidia.ru/object/crysis-2-di ... de-ru.html

_________________
https://sites.google.com/site/intelligencecells
http://www.youtube.com/user/IntelligenceCells


 Сообщение Вт 1 май 2012 15:06
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
smt005 писал(а):
Конечно любой метод имеет недостатки, но тень с обычной, одной картой тени точно не подойдёт для больших пространств.
Это ещё почему?! :shock: Чем рациональнее использована карта тени, тем меньший её размер нужен. При 100%ной утилизации размер карты тени приближается к размеру экрана. Рациональное использование карты тени подразумевает искажения, за счёт которых бОльшая площадь карты тени отводится для ближних к наблюдателю объектов и минимальна для дальних; также карта тени должна включать ЛИШЬ зону обозрения наблюдателя (пирамида видимости), так что размер сцены значения не имеет. Подобное заблуждение уже не имеет смысла в век шейдеров (я уже писал про трюк с игнорированием границы отсечения).
Одной карты тени недостаточно лишь для точечных светильников. Для униформного освещения (солнце) одной карты тени хватает.

Добавлено спустя 8 минут 28 секунд:

smt005 писал(а):
Если интересна графика, можеш посмотреть на обзор еффектов игры Crysis 2.
Да, это стандарт качества. У-у-х!

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Вт 1 май 2012 15:25
Профиль  
Трёхмерный
Аватара пользователя
Сообщения: 3622
Зарегистрирован: Пн 17 янв 2005 19:23
Цитата:
Чем рациональнее использована карта тени

Это уже НЕобычное использование карты тени, а с наворотами.

Добавлено спустя 1 минуту 36 секунд:

Цитата:
Да, это стандарт качества. У-у-х!
Меня больше всего впечатлило RLR.

Добавлено спустя 10 минут 13 секунд:

Всё, надоело уже делать этот проект. На этой неделе скорее всего будет релиз.
Всё будет просто, вот к примеру будет такое меню.
Изображение

_________________
https://sites.google.com/site/intelligencecells
http://www.youtube.com/user/IntelligenceCells


Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 567 ]  На страницу Пред.  1 ... 6, 7, 8, 9, 10, 11, 12 ... 19  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB