![]() |
Ответ: Странное.
Цитата:
Код:
texturediffuseTexture : TEXTURE_0; // текстура |
Ответ: Странное.
в glsl такого нет.
настройки сэмплера задются в клиентском коде: Код:
tex->SetRepearMode уровень анизотропной фильтрации пока можно задать только при создании текстуры |
Ответ: Странное.
в общем вроде баг :) хотя может опять мне кажется :))
вот этот класс: создается там внутри поверхность. потом вот этим методом делаю вид что переставил точки. вызываю его каждый кадр. Код:
void Update(){ Еще мои творения падают если текстуры назначать не по порядку. в смысле если дать например на 0 слой любую, а потом на любой кроме 1 то приложение при запуске крэшится, хотя компилится без проблем. плюс с назначением вторых текстурных координат какой-то странный косяк. |
Ответ: Странное.
Я сейчас в отпуске. Вернусь _ обязательно разберусь
|
Ответ: Странное.
![]() Прикола ради сделал плоскость на которую накладывается шум шейдером. Плюс генерируется новый шум при перемещении камеры на 60 единиц от позиции плоскости. И кажется мне что примерно так террэйн делать и следует :) Кстати, почему на текстурной координате = 0 читается значение из 1 и наоборот? http://rghost.ru/land.zip |
Ответ: Странное.
Цитата:
Цитата:
|
Ответ: Странное.
Цитата:
|
Ответ: Странное.
Цитата:
|
Ответ: Странное.
Вложений: 1
Черный экран. Встроеное видео в Core i5.
|
Ответ: Странное.
Цитата:
|
Ответ: Странное.
|
Ответ: Странное.
Цитата:
|
Ответ: Странное.
Требует OpenCL.dll
Странно. Последнем версии вроде должны были без зависимостей от опенсиэль Возможно, сборка. Под. Мингв. Кривовата |
Ответ: Странное.
![]() теперь под 085 версией. Немножко усложнил пиксельный шейдер. теперь камера по поверхности террэйна ходит. вроде поприкольней стало. Только почему то вывод текста перестал работать. Код:
ground->Update(); |
Ответ: Странное.
На GeForce 9600 GT идет хорошо. На краях террейна глюки запланированы?)
|
Ответ: Странное.
Цитата:
Цитата:
вместо surf->SetVertexTexCoord(index,i/(float)segments,j/(float)segments,0); вот так сделать и ок : surf->SetVertexTexCoord(index,0.01f+0.98f*i/(float)segments,0.01f+0.98f*j/(float)segments,0); |
Ответ: Странное.
Чтобы не брало с края текстуры - можно задать clamp фильтрацию у текстуры.
|
Ответ: Странное.
Вложений: 1
зачем то сделал класс который трехмерный массив из 0 и 1 рисует кубиками, одной поверхностью...
|
Ответ: Странное.
А те трианглы что не видны (находятся между двумя кубами), они тоже добавлены? Или алгоритм учитывает и не добовляет их тем самым оптимизируя объём максимально?
Если да, то можно ещё сделать систему с учётом рядом стоящих чанков и также не рисовать не нужные трианглы. Далее систему обновления сетки (динамично и оптимально). И вуаля - у тебя есть свой рендер minecraft'а. |
Ответ: Странное.
для ячейки оно смотрит чтобы в ней был куб и если соседняя пустая то с той стороны добавляется грань. А еще для пущей экономии можно сделать так чтобы оно стоящие рядом грани которые находятся в одной плоскости рисовало не отдельными квадами а одним, но смысла пока не вижу. :-)Равно как и по краям экономить на квадах.
|
Ответ: Странное.
Ну сливать плоскости - весьма гемор, и слишком затратно думаю, с не очень то и большой экономией. При этом если будет повершинное освещение и текстуринг - то слишком запарка будет, тем более с разными тайлами.
|
Ответ: Странное.
Вот и я того же мнения. А освещение мне кажется надо не по вершинам делать, а отдельной 3d текстурой. Потому что пересчитать для каждой вершины количество света и записать это в данные вершин и более трудоемко и ректально, чем из массива источников света для данного положения камеры нарисовать текстуру. тем более что в акслинксе эту текстуру можно очень легко и быстро сделать.
|
Ответ: Странное.
А по мне так можно попробовать совместить Deferred Rendering с тенями и SSAO, и будет достаточно.
|
Ответ: Странное.
|
Ответ: Странное.
Сочинил класс который делает процесс создания поверхностей попроще.
теперь поверхность можно делать так: Код:
surf_fabric * surf = new surf_fabric(); |
Ответ: Странное.
Вложений: 1
с помощью какой то матери и черной магии сделал тот же массив кубиков.
летать wasd и мышь, крутить кубик стрелки, закрыть альт+ф4 выяснилось что в Код:
unsigned char* data = unsigned char[tex->GetDataSize()]; |
Ответ: Странное.
Цитата:
Цитата:
Цитата:
Цитата:
демка показывает 1800 фпс, если выключить vsync в драйверах (на 680gt) чтобы не обрезались кубы в ближней плоскости отсечения - теперь есть camera->SetDepthClamp(true); |
Ответ: Странное.
Цитата:
ну значит можно будет приличный объем рисовать :) . в примере куб 32х32х32 и половина кубов примерно есть. то есть около 50 к треугольников. по идее в нормальном кубе 32х32х32 будет гораздо меньше полигонов, так как это нарисован худший вариант по количеству полигонов. |
Часовой пояс GMT +4, время: 22:30. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot