 |
3D-программирование Вопросы, касающиеся программирования 3D мира |
19.08.2011, 20:54
|
#271
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Имитация водной поверхности.
А где скрины снова???
|
(Offline)
|
|
19.08.2011, 20:58
|
#272
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Имитация водной поверхности.
 Да прямо перед кодом шейдера, сэр.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
19.08.2011, 21:07
|
#273
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Имитация водной поверхности.
Вот этот слегка модифицированный шейдер из шагов рисует такую картинку.
|
брр что это?
я же говорил уже про флоатовые текстуры. не нужно ничего никуда кодировать.
|
(Offline)
|
|
19.08.2011, 21:11
|
#274
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Имитация водной поверхности.
Омг.
Единственный способ получения текстуры из шейдера в хорс, который я умею это отрендрить в текстуру изображение рендервурлдом или рендереентитей. Если есть более простой и прямой способ просвети меня, гуру. Я тогда в твою честь авемарию спою 
|
(Offline)
|
|
19.08.2011, 21:20
|
#275
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Имитация водной поверхности.
всё делаешь как обычно, НО создаёшь текстуру с флагом 256 (если ниче не поменяли с момента когда я юзал ксорс) - в ней будут не 4 цвета по байту храниться, а один цвет в формате дробного числа.
ты просто делаешь в PS return depth и не паришься.
|
(Offline)
|
|
19.08.2011, 21:34
|
#276
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Имитация водной поверхности.
//VS
float4x4 matrixWorldViewProj : MATRIX_WORLDVIEWPROJ; // матрица итоговая
float4x4 matrixWorld : MATRIX_WORLD; // матрица мировая
struct VS_INPUT
{
float4 position : POSITION;
};
struct VS_OUTPUT
{
float4 position : POSITION;
float depth : TEXCOORD0;
};
VS_OUTPUT main_VS( VS_INPUT In )
{
VS_OUTPUT Out;
Out.position = mul( In.position, matrixWorldViewProj);
Out.depth=Out.position.z;
return Out;
}
//PS
struct PS_INPUT
{
float depth : TEXCOORD0;
};
float4 main_PS( PS_INPUT IN ) : COLOR0
{
return IN.depth;
};
Ты про це? у меня он чет не работает 
|
(Offline)
|
|
19.08.2011, 21:50
|
#277
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Имитация водной поверхности.
ну всё правильно у тебя сейчас.
если попытаешься отобрзазить дептх текстуру, то вблизи выйдет голубое а после единичной дистанции - белое.
|
(Offline)
|
|
19.08.2011, 22:29
|
#278
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Имитация водной поверхности.
output.depth = output.position.z; Вот это значение которое я делаю в вершинном шейдере равно расстоянию между этой вершиной и камерой в хорсе или нет?
|
(Offline)
|
|
19.08.2011, 22:44
|
#279
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Имитация водной поверхности.
по идее да.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
20.08.2011, 14:52
|
#280
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Имитация водной поверхности.
Пришла идея 3д редактора многопользовательского.
Все взаимодействие с миром происходит рукой практически идентичной той, что была в блак энд вайт. У меша вершины представленны пикабельными кубами меняющими цвет от действий-бездействий юзеров.
Основная фишка: других юзеров можно бить по рукам и встроенный голосовой чат 
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
22.08.2011, 16:56
|
#281
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Имитация водной поверхности.

Я написал какой-то ужас таки почти не рисующий ненужные вертексы без буферов глубины и прочей хрени  правдо оно не рисует вертексы которые дальше позиции ентити от камеры 
Последний раз редактировалось dsd, 24.08.2011 в 23:19.
|
(Offline)
|
|
25.08.2011, 20:35
|
#282
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Имитация водной поверхности.
\window\main.cpp||In function 'int Horse()':|
\window\main.cpp|15|error: invalid conversion from 'HWND__*' to 'Handle'|
\window\main.cpp|15|error: initializing argument 1 of 'void xSetRenderWindow(Handle)'|
||=== Build finished: 2 errors, 1 warnings ===|
Как правильно HWND в хэндл окна понятный xSetRenderWindow(Handle) сконвертировать?
|
(Offline)
|
|
25.08.2011, 21:13
|
#283
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Имитация водной поверхности.
xSetRenderWindow((Handle)hwnd);
у меня работало
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.08.2011, 02:25
|
#284
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Имитация водной поверхности.
1. Сравниваю нормаль вершины и вектор от камеры до вершины. При угле меньшем 90 точка видна.
2. Пишу в массив координаты видимых точек и расстояния от камеры до каждой из точек. Сортирую точки по расстоянию. И еще разбиваю на квадраты само изображение и для каждого нахожу ближайшую точку.
3. Теперь для ближайшей узнаю каким полигонам она принадлежит, они точно видимые. Получаю первый и стопицотый «островок видимости». Ставлю флаг обработанным вершинам. Выкидываю те вершины которые не обработались и попали в границы островков.
4. Анализирую полигоны имеющие в себе стопудово видимые вершины. После обхода каждого острова маркирую скрывшиеся вершины, и так пока все вершины не получат флаг видимости-невидимости.
А теперь расскажите как это делают нормальные люди 
|
(Offline)
|
|
27.08.2011, 02:33
|
#285
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Имитация водной поверхности.
А у Xors3D нету возможности пикать триангл? Думаю если есть пики, то и триангл найти от пика не составит труда.
Таким образом имея данные о триангле, можно получить данные о его вершинах..
А ваще это изврат делать подобного рода вещи на такого рода движке. Для этого лучше писать свой гапи, свой формат моделей и напрямую работать с ними, это будет лучше в разы, меньше изврата, больше доступа ко всему и контроля..
|
(Offline)
|
|
Эти 4 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:37.
|