![]() |
Ответ: Xors3D
В чем может быть проблема? Почему map не показывается? А если убрать xHideEntity(back_map), то показывается весь back_map, на блице все нормально работает.
int back_map = xLoadAnimMesh("DATA/models/map/map.b3d"); int map = xFindChild(back_map,"Plane02"); xEntityType(map,col_map); xHideEntity(back_map); |
Ответ: Xors3D
Цитата:
нашел чайлд присвоил группу коллизий скрыл загруженную модель Очевидно в результате работы программы мы не увидим модель, что не так? |
Ответ: Xors3D
|
Ответ: Xors3D
Все правильно xHideEntity скрывает указанный объект, и все привязанные к нему.
|
Ответ: Xors3D
есть у кого шейдер, для создания мультяшной графики, рисованной. Вроде технология cell-shading называется... ???
|
Ответ: Xors3D
Тебе нужно в зависимости от угла между нормалью и вектором соединяющим пиксель и камеру красить каким-либо цветом пиксель. Он простой сам по себе шейдер.
Вообще в архиве с хорсом в сэмплах идет ToonShaded Light. Ну можно еще с бесшовной текстурой как-нить по диагонали типа карандашом заштрихованную в какой-то пропорции смешивать. И постэффектом маской все контуры зубчатыми делать. |
Ответ: Xors3D
у меня объект b3d состоит из множества мешей, следовательно там куча тестур. Как мне это обработать, тем более что модель анимационная. И когда я накладываю шейдер, она теряет текстуру
|
Ответ: Xors3D
Накладывать на каждый меш шейдер отдельно и передавать в шейдер соответствующую текстуру
xSetEntityEffect(mesh,Shader); xSetEffectTexture(mesh,"seaside",seaside_tex); А если у тебя именно в меше куча сюрфейсов с отличающимися текстурами, то тебе надо пытаться, что-то замутить с текстурными координатами или в цвете вершин в шейдер дополнительно передавать данные о порядковом номере текстуры для текущей вершины и в шейдер загружать кучу текстур и учить его думать чо чем красить. Лучше въехать в шейдеры хоть чу-чуть и уже планировать более рациональное их использование. Написанные кем то шейдеры твою игру не спасут. Вот. |
Ответ: Xors3D
Цитата:
|
Ответ: Xors3D
Цитата:
|
Ответ: Xors3D
Цитата:
|
Ответ: Xors3D
ShaderModel 4 / Шейдеры четвертой версии
|
Ответ: Xors3D
Ну если в кратце и врать, то.
в шейдере у тебя есть входные данные - этакие переменные и константы. Есть первоначальный обработчик этих данных который нужным образом совместит твои данные и модель которую ты красить собрался. Это вершинный шейдер. В нем ты в общем случае должен для каждой вершины сформировать данные в которых ты для этой вершины укаюешь ее текстурные координаты и нормаль. Ну и еще можно все что угодно туда вписать необходимое для извращений. вот когда все вершины получили свои правильные по мнению видеокарты данные происходит переход на нижний уровень где уже непосредственно рисуются точки которые ты увидешь на экране. Это называется пиксельный шейдер. И по сути он работает уже не с моделью, а только с одним ее треугольником. Из вершинного шейдера ты передал текстурные координаты вершинам треугольника и командой sampler2d() можешь приказать шейдеру из какой текстуры узнать какая точкой той текстуры попадает в это место. Это есть наш цвет с которым мы должны работать дальше. Еще в вершинном шейдере мы подготовливаем данные о нормали поверхности. Которые магическим образом передаются в текущий пиксель. Еще мы можем в шейдер этакой глобальной переменной передать вектор вдоль которого светит свет. Дальше командой normalize() можно сделать векторы нормали и направления света длинной 1. И есть команда dot() скалярное произведение векторов. Котрая при нормализации входных векторов вернет косинус угла между ними. И вот тут происходит магия. У нас есть из сэмплера цвет пикселя от текстуры. Есть косинус угла между нормалью и повернутым обратно светом, этот косинус является той. Частью света которую отразит наш пиксель прямо нам в глаз. Перемножаем вектор цвета но косинус получаем четырехмерный вектор цвета который и есть наш пиксель для которого посчитан правильный цвет и затенение. сорри за мой хранйцузский акцент, пишу с мобилы. |
Ответ: Xors3D
Цитата:
|
Ответ: Xors3D
Люди. В Xors samples есть шейдер DeferredFinal.fx. Как им пользоваться?
и еще... есть ли возможность узнать имя файла текстуры используемой на entity |
Ответ: Xors3D
люди а где можно взять готовые шейдеры?
|
Ответ: Xors3D
"Готовых" не бывает. Все и всегда нужно менять под определённые условия и задачи.
Есть в ревизиях с ксорсом папка с шейдерами, есть в примерах, есть в гугле. Снова: невозможно толком юзать чужие шейдера. Если ты собираешься их юзать, то тебе нужно их умень писать. Читай доку от Xors3D Team по гейдерам. |
Ответ: Xors3D
В BlitzMax если использовать хорс и вызвать реквестер файлов(RequestFile), вылетает WINDOWS EXCEPTION: EXCEPTION_ACESS_VOLATION. wtf?
|
Ответ: Xors3D
А шо эта?
|
Ответ: Xors3D
Цитата:
|
Ответ: Xors3D
Сэмпл? Иначе не знаю. Впрочем, я и сейчас не знаю.
|
Ответ: Xors3D
Цитата:
|
Ответ: Xors3D
Цитата:
PHP код:
|
Ответ: Xors3D
Дело в том, что создаваемые текстуры помещаются в default pool, а загружаемые в managed pool. Managed pool, как видно по названию, управляется дх-ом / дровами: запихивают текстуры в раму, когда надо, воссоздают их после потери девайса и т.п. Default pool не такой управляемый. Но оно и не надо для создаваемых текстур, т.к. они, как правило, создаются в качестве рендер таргетов.
У IDirect3DDevice9::StretchRect, который используется в xStretchRect, помимо кучи прочих ограничений, нет возможности копирования в пулах, отличных от default. Т.е. фактически, этот метод нужен для копирования кусков текстур в видео-памяти. Такие дела. Надо добавить в документацию и соответствующее сообщение в логгер. |
Ответ: Xors3D
Походу не судьба мне запилить саморисующийся текстурный атлас...
PHP код:
|
Ответ: Xors3D
А полностью код можно? Ну, только генерацию атласа, конечно, без прочего леса и ландшафта. Желательно в виде архива с нужными файлами.
|
Ответ: Xors3D
Код в папке бин, два экзешника который де баг работает который не де баг не работает, но и не падает :)
Может это только у меня такие чудеса? :dontknow: |
Ответ: Xors3D
А как оно должно работать? Оба приложения показывают черный куб / квадрат на голубом фоне.
|
Ответ: Xors3D
рисует "это" и в релизе и в дебаге.
win7, i7-2630QM, radeon HD 6850M, 8GB RAM |
Ответ: Xors3D
у меня черный квадрат Малевича
winXP, amd athlon , geoforce 7200gt, 512MB RAM |
Ответ: Xors3D
Вложений: 1
Че не нравится ксорсу в шейдере!!!
Can't create effect from file 'deferred.fx'! ID3DXEffectCompiler: There were no techniques ID3DXEffectCompiler: Compilation failed это пишет лог вот сам шейдер |
Ответ: Xors3D
Вероятно то что он в utf8?
|
Ответ: Xors3D
Цитата:
|
Ответ: Xors3D
Код:
float4x4 matrixWorldViewProj : MATRIX_WORLDVIEWPROJ; // матрица итоговая Код:
output.position =mul(input.position, matrixWorld); Код:
output.position =mul(output.position,matrixCamProj); matrixCamView Код:
xSetEffectMatrix(entity,"matrixCamView",xGetViewProjMatrix(Camera),0); Код:
float4x4 matrixWorldViewProj : MATRIX_WORLDVIEWPROJ; // матрица итоговая Код:
output.position =mul(input.position, matrixWorld); Что я делаю не так? |
Ответ: Xors3D
output.position =mul(input.position, matrixWorld);
output.position =mul(output.position,matrixCamView); ты в выход сначала одно пишешь потом затираешь другим... это как так. Оно должно проканать? |
Ответ: Xors3D
Я сначала умножаю ентити на матрицу её позиции в мире, а затем я умножаю результат на произведение видовой и проекционной матрицы, тут сложней ошипка и не внутри шейдера все-таки
|
Ответ: Xors3D
А точно.. не всматривался.. просто я обычно использую временные переменные поэтому тупанул
|
Ответ: Xors3D
На идеологически правильную запись:
xSetEffectMatrix(entity, "matrixCamView",(float*)(*xGetViewProjMatrix(shade cam)), 0); Оно мне пишет: \bin\main.cpp|104|error: invalid type argument of 'unary *'| Есть ли другой рабочий способ получить указатель на матрицы изнутри хорса? |
Ответ: Xors3D
Эх, я забыл, что почти все указатели приводятся к типу Handle. Очередная хрень, связанная с поддержкой кучи языков.
В общем xGetViewProjMatrix на самом деле возвращает D3DXMATRIX* У него есть оператор приведения к float*, который возвращает указатель на массив из 4х4 флоутов. xSetEffectMatrix в качестве третьего параметра принимает float*. Но вместо всех этих указателей в функциях фигурирует Handle. Поэтому сначала надо Handle привести к D3DXMATRIX*, затем применить оператор (float*), и затем назад в Handle. Для всех приведений надо использовать reinterpret_cast. Прошу прощения за такой дебилизм. Если найду время, то постараюсь подправить генератор хедеров для С++. |
Ответ: Xors3D
Насчет смены разрешения экрана. Может сделать функцию которая изменяет размер окна и заново устанавливает вьюпорт относительно новых настроек в DX ?
|
Ответ: Xors3D
И еще... у каждого загруженного объекта есть материалы... Было бы хорошо если бы была возможность присваивать файл эффекта на материал, и тем самым шейдер работал бы на всех sub объектах модели...
|
Ответ: Xors3D
В новой ревизии больше не пишет ошибки компиляции шейдеров в лог. Это жестоко и негуманно.
|
Ответ: Xors3D
Эм.. вообще-то пишет.
|
Ответ: Xors3D
Ок, значит у меня глюки. В том смысле, что галлюцинации.
Зы: Оно на одни пишет, а на другие нет. :) |
Ответ: Xors3D
На какие не пишет?
|
Ответ: Xors3D
Я стер нафиг проект, стер тот глючный шейдер и написал все заново и оно заработало. Проблема была, как всегда, в моих кривых руках.
|
Ответ: Xors3D
Последнии версии библиотек под блицмакс на End крахаются с ошибкой C++ Runtime Library, копирую старые версии - работает нормально.
|
Ответ: Xors3D
Наверное код в студию
|
Ответ: Xors3D
Цитата:
xEntityCompoundAddBox(body,2.0,0.25,1.25); xEntityCompoundChildSetRotation(body,2,0,0.015,0); xEntityCompoundChildSetPosition(body,2,0,0.9,-1.5); результат: ![]() |
Ответ: Xors3D
где обновление iXors3d?
|
Ответ: Xors3D
Цитата:
Цитата:
|
Ответ: Xors3D
Цитата:
Код:
Import xorsteam.xors3d Не импортирую ксорс - всё в порядке. Юзаю старые dll-ки - всё в порядке. |
Ответ: Xors3D
Пофиксил.
|
Ответ: Xors3D
В документации к хорсу есть це:
Цитата:
Но замечательно работало с int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) или даже int main() Но в экспресс студии тоже самое. Что можно было в экспресс студии настроить не так? Или так и задумывалось? MSVCRT.lib(crtexe.obj) : error LNK2001: неразрешенный внешний символ "_main" |
Ответ: Xors3D
#include <tchar.h>
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { |
Ответ: Xors3D
Здравствуйте.
Подскажите, пожалуйста, новичку, про функцию xCameraProject2D. Я так понимаю, что это функция обратная xCameraProject, но если у xCameraProject я могу взять спроецированные координаты(xProjectedX и т.д.), то в справке по xCameraProject2D такие команды я не обнаружил. С помощью чего можно получить координаты после этой функции? PS. извините, если не в ту тему. |
Ответ: Xors3D
Вроде бы ошибка в справке
Цитата:
|
Ответ: Xors3D
Привет форумчане. Какое будущее ожидает Xors3D? какие нововведения впереди?
|
Ответ: Xors3D
вопрос по шейдерам : вот к примеру имеется модель, у нее 3 текстуры, Диффуз,Бамп,Спекуляр
все это видится в примере как : Код:
Local tTextureDiffuse%=xLoadTexture("..\Media\Rockwall_Diffuse.jpg") |
Ответ: Xors3D
Есть семантики, почитай документацию, там о них есть инфа.
|
Ответ: Xors3D
Вложений: 1
Чото SaveMesh криво сохраняет UVW
|
Ответ: Xors3D
Цитата:
|
Ответ: Xors3D
Судари: подскажите, объясните, расскажите - где у нас тут координата w подевалась то, ааа?)
не шейдер,ефикс Код:
Handle mesh = xCreateMesh(); Код:
struct vsi вопрос: где же ты, w, кто тебя обидел?!? Стандартное заранее спасибо. За ответ или за найденную w - возможно вознаграждение:-) UPD: как словить в шейдере цвет вертекса заданного через иксВертексКолор? Думал что с помощью COLOR_DIFFUSE но полностью белый квадратик показал мне фак... |
Часовой пояс GMT +4, время: 14:44. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot