![]() |
Ответ: Имитация водной поверхности.
OQ еще нет.
Дешевле рисовать вообще все квадратики, чем пытаться понять, видна вершина или нет. Тем более, используя для этого З-буфер о_О |
Ответ: Имитация зед-буфера.
Цитата:
Самый простой способ займеть буфер глубины для какого-то отдельного меша: 1.Наложить на меш шейдер, как в "первых шагах" только в пиксельном писать цветом расстояние от камеры до текущего пикселя. 2.Поставить xSetBuffer(mydepthbuffer); 3. xRenderEntity(myMesh); 4. xSetBuffer(BackBuffer()); 5. Выключить шейдер. Так? Самый простой способ получить какой-то буфер. Отрендрить в картинку сцену с включенным xWireframe(true); Потом для спроецированных координат моей вершины читать картинку в соответсвующем месте и если пиксель не черный, значит можно рисовать квадратик? |
Ответ: Имитация водной поверхности.
Цитата:
Цитата:
уже я говорил про OQ, а если их нет, то Сквид сказал что дешевле рисовать все точки. если будешь рисовать точки после отрисовки загораживающих объектов, видюха автоматически не будет обрабатывать загороженные пиксели. в плане вертексов квадратики малонапряжные, так что не стоит городить тормознющие проверки, чтобы их отсеять. в плане кол-ва вызовов отрисовки (отдельных объектов), много квадратиков = проблема, которая решается инстансингом (в ксорсе есть пример). |
Ответ: Имитация водной поверхности.
Я какбэ не игру писать начал :) Подразумевается, что будет видно адин меш и фпс даже 15 будет вполне нормальным :)
|
Ответ: Имитация водной поверхности.
я не знаю в каком приложении нужен искуственно пониженый чтением пикселей из текстур фпс ))
|
Ответ: Имитация водной поверхности.
В маем, хотя фпс низким врядли будет. Ибо пискселей будет читаться всего несколько тыщь причем на лок буфере.
|
Ответ: Имитация водной поверхности.
dsd,
А это не важно сколько пикселей ты читаешь, хоть все хоть два - текстура перегоняется целиком, от этого и тормоза. |
Ответ: Имитация водной поверхности.
Это все здорово, что оно лагать будет, лучше мне скажите че оно падает при xDrawImage() :(
А может можно в вершинном шейдере писать в цвет вершины флаг видимости точки? Или эти данные обратно в хорс не передадутся? оффтоп: если в кодеблокс открыт xors3d.h, то функции хорса будут появлятся списком как в Visual Blitz. Не слишком очевидная зависимость :-D p.s. На сфере с 32 чего там, выдает 130 фпс. Шмертельные лаги, я ф такой пичали :( а с 64 так вообсче 60 фпс всего. Чорт побери!!! А с 128 так вообще всего 40, этого мало что бы вертексами подрыгать мышкой :((( |
Ответ: Имитация водной поверхности.
При xCameraProject (camera,x1,y1,z1)
ProjectedX() - пишется x точки на экране ProjectedY() - пишется y точки на экране ProjectedZ() - пишется значение лежащее в (0,1) Из непроверенных источников мне стало известно, что и z-buffer имеет значение в подозрительно похожем интервале (0,1). Это совпадение? И если нет, то как преобразовать это значение в расстояние от камеры до отрисованного видеокартой пикселя? |
Ответ: Имитация водной поверхности.
Зачем приобразовывать, если есть функция просчёта дистанции между двумя точками в 3ёх мерном пространстве?
|
Ответ: Имитация водной поверхности.
Цитата:
|
Ответ: Имитация водной поверхности.
Ладно, что туда пишется? Ведь явно это значение зависит от расстояния между точкой и камерой.
|
Ответ: Имитация водной поверхности.
Цитата:
|
Вопрос по шейдеру рисующему расстояние от камеры до пикселей.
![]() Код:
float4x4 matrixWorldViewProj : MATRIX_WORLDVIEWPROJ; // матрица итоговая То что линии на модели рисуются паралельно экрану радует. Но я ожидал нечто более близкое к градиенту или так и должно было получиться? Теперь основной вопрос. Будет ли расстояние которое я записал цветом в шейдере равным расстоянию между видимой вершиной и камерой в хорсе? |
Ответ: Имитация водной поверхности.
А где скрины снова???
|
Ответ: Имитация водной поверхности.
![]() |
Ответ: Имитация водной поверхности.
Цитата:
я же говорил уже про флоатовые текстуры. не нужно ничего никуда кодировать. |
Ответ: Имитация водной поверхности.
Омг.
Единственный способ получения текстуры из шейдера в хорс, который я умею это отрендрить в текстуру изображение рендервурлдом или рендереентитей. Если есть более простой и прямой способ просвети меня, гуру. Я тогда в твою честь авемарию спою :) |
Ответ: Имитация водной поверхности.
всё делаешь как обычно, НО создаёшь текстуру с флагом 256 (если ниче не поменяли с момента когда я юзал ксорс) - в ней будут не 4 цвета по байту храниться, а один цвет в формате дробного числа.
ты просто делаешь в PS return depth и не паришься. |
Ответ: Имитация водной поверхности.
PHP код:
|
Ответ: Имитация водной поверхности.
ну всё правильно у тебя сейчас.
если попытаешься отобрзазить дептх текстуру, то вблизи выйдет голубое а после единичной дистанции - белое. |
Ответ: Имитация водной поверхности.
output.depth = output.position.z; Вот это значение которое я делаю в вершинном шейдере равно расстоянию между этой вершиной и камерой в хорсе или нет?
|
Ответ: Имитация водной поверхности.
по идее да.
|
Ответ: Имитация водной поверхности.
Пришла идея 3д редактора многопользовательского.
Все взаимодействие с миром происходит рукой практически идентичной той, что была в блак энд вайт. У меша вершины представленны пикабельными кубами меняющими цвет от действий-бездействий юзеров. Основная фишка: других юзеров можно бить по рукам и встроенный голосовой чат :) |
Ответ: Имитация водной поверхности.
![]() Я написал какой-то ужас таки почти не рисующий ненужные вертексы без буферов глубины и прочей хрени :) правдо оно не рисует вертексы которые дальше позиции ентити от камеры :( |
Ответ: Имитация водной поверхности.
\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) сконвертировать? |
Ответ: Имитация водной поверхности.
xSetRenderWindow((Handle)hwnd);
у меня работало |
Ответ: Имитация водной поверхности.
1. Сравниваю нормаль вершины и вектор от камеры до вершины. При угле меньшем 90 точка видна.
2. Пишу в массив координаты видимых точек и расстояния от камеры до каждой из точек. Сортирую точки по расстоянию. И еще разбиваю на квадраты само изображение и для каждого нахожу ближайшую точку. 3. Теперь для ближайшей узнаю каким полигонам она принадлежит, они точно видимые. Получаю первый и стопицотый «островок видимости». Ставлю флаг обработанным вершинам. Выкидываю те вершины которые не обработались и попали в границы островков. 4. Анализирую полигоны имеющие в себе стопудово видимые вершины. После обхода каждого острова маркирую скрывшиеся вершины, и так пока все вершины не получат флаг видимости-невидимости. А теперь расскажите как это делают нормальные люди :) |
Ответ: Имитация водной поверхности.
А у Xors3D нету возможности пикать триангл? Думаю если есть пики, то и триангл найти от пика не составит труда.
Таким образом имея данные о триангле, можно получить данные о его вершинах.. А ваще это изврат делать подобного рода вещи на такого рода движке. Для этого лучше писать свой гапи, свой формат моделей и напрямую работать с ними, это будет лучше в разы, меньше изврата, больше доступа ко всему и контроля.. |
Ответ: Имитация водной поверхности.
Я люблю извращения, особенно в периоды изучения языков :)
Да есть пикать трианглы :) Я так сделал выбор вершины. Это проще чем буфер городить. Сэнкс. |
Ответ: Имитация водной поверхности.
Возможно очень тупой вопрос. Как узнать хэндл ентити если известен хэндл принадлежащей ентити поверхности?
|
Ответ: Имитация водной поверхности.
Одной строчкой - никак. Только перебрать все поверхности и сравнить.
ЗЫ. Зачем это? |
Ответ: Имитация водной поверхности.
Я не могу сформулировать зачем мне это:-D. Просто лень во все функции добавлять новый флаг и медитировать на глюки не обрушивающие мое творение :) Экономил 5 минут вобщем.
|
Ответ: Имитация водной поверхности.
![]() Я отбил себе руки бубном, но таки сделал по нажатому контрол выбор вершин как в приличных программах :) [q] сбросить пикнутую поверхность. Вроде не сразу падает теперь :) |
Ответ: Имитация водной поверхности.
Чем кроме названия отличается struct от union? Вообще ведь разницы не вижу. Разве что в структуре можно битовые размеры полей указывать. У меня из-за этого когнитивный диссонанс.
|
Ответ: Имитация водной поверхности.
в структуре каждому полю выделяется место. тоесть размер структуры равен сумме размеров полей.
размер объеденения равен размеру максимального элемента. тоесть если в структуре можно юзать все элементы, в объеденении только один, это для экономии памяти сделали. Тоесть в объеденении общая память для полей. вот вобщем http://programmersclub.ru/19/ :) там с картинками |
Ответ: Имитация водной поверхности.
Пытался расскуривать мдсн по винапи. Мне интересно вот если я вместо хорса для рисования своих квадратиков буду функции винапи использовать это не лучше? Ведь как я понял в винапи это будет рисоваться гпу, а врайтпиксель пишется цпу.
З.ы. дайте сцылку на нормальную пдфку про графический интерфейс для самых маленьких :) А эклипс не лучше кодеблокс по функциональности? Или хрен редьки не слаще? |
Ответ: Имитация водной поверхности.
Цитата:
врайтпиксель НЕ ЮЗАЙ. юзай маленькие квады. |
Ответ: Имитация водной поверхности.
Нуууу... Разница по скорости будет некритична, а гемора больше и надо будет куеву тучу информации хранить я заипусь это доводить до рабочего состояния в си. Хотя... :) Может еще и гуй сделать трехмерным? :-/
Врайтпикселем можно спокойно рисовать в кадре порядка 100000 пикселей... А ведь если не квадами, а трианглами то и вершины пикабельными станут по человечески без бубнов и прочего гэ. Просто от центра три вектора расчитать. И скорость не плохая должна получиться... Просто от вершины по нормали точку оттопырить и вуаля. |
Ответ: Имитация водной поверхности.
Цитата:
рисовать пиксели = качать данные с рам во врам. рисовать квады = нормальное хардварное ускорение. Цитата:
можешь убедиться и выдрать гуй из любой современной игры 3д риппером. |
Ответ: Имитация водной поверхности.
Во время медитации на классы вдруг захотелось нарисовать лошадь. Получилась какая-то ";№%!2 с двумя мордами :)
![]() |
Ответ: Имитация водной поверхности.
Цитата:
Ты б блог завёл что ли :/ |
Ответ: Имитация водной поверхности.
![]() И оно даже вообще не падает в отличии от предыдущей кучи команд. Но как же тяжко мне дались эти двацать строчек кода... з.ы. [q] сбросить пикнутую поверхность. |
Ответ: Имитация водной поверхности.
Объясните пожалусто, как все последние посты относятся к водной поверхности? Оо,
|
Ответ: Имитация водной поверхности.
CRASHER, последние страниц 15 - никак. dsd просто упорно не хочеть сделать себе нормальный блог, потомучто в этой теме уже обжился.
|
Ответ: Имитация водной поверхности.
dsd, может тему переименовать?
|
Ответ: Имитация водной поверхности.
Я новую завел :))
![]() В связи с утратой связи с бзд |
Часовой пояс GMT +4, время: 11:25. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot