![]() |
много шейдерного света
Перешёл на ксорс изза наличия шейдеров
в примерах нашёл Bump Light + Bump Specular + FallOff эффекты понравились но там в примере юзается всего 1 источник света а что если мне требуется сделать их штук 50 а также возможность их смены яркости радиуса и скрытия как такое провернуть с этим примером надеюсь ктонибуть подскажет |
Ответ: много шейдерного света
тогда уж нужен deferred shading, вроде он в xors'е есть
|
Ответ: много шейдерного света
Только примеры с ним у меня выводят ошибку говоря об отсутствие такой функции хотя хорс самый последний с офф сайта
upd может тогда кто нибудь скинет ксорс с рабочим deferred shading |
Ответ: много шейдерного света
Цитата:
Цитата:
8-16 источников света в кадре, в зависимости от загруженности геометрии и логики. Поковыряй шейдер с по пиксельным освещением. Суть такова, что там есть переменные Light, Light_Color и т.д. дк вот эта первый источник света, для второго указываешь уже Light2,Light_Color2 и в таком духе для каждого источника света. Соответственно надо в вычислениях добавить еще туда второй и таким образом ты получишь куча света. |
Ответ: много шейдерного света
Phyton спасибо но я только учусь шейдерам , я видел что ты уже делал такой шейдер , дак вот может скинеш его с примером использывания
|
Ответ: много шейдерного света
там куча хлама, я там сам учился. Времени нету, а так хотел сделать отдельный пример для тебя.
|
Ответ: много шейдерного света
большое спасибо буду разбираться
|
Ответ: много шейдерного света
решил глянуть на исходник с 30 светильниками но шейдера Bump Lightmass_30 lights.fx в архиве нет
upd почти всех шейдеров на свет нету по адресу видно что шейдеры лежат в папки Materials а в архиве её нет |
Ответ: много шейдерного света
Вот так надо было тебе скинуть, а я болда забыл тебе остальные файлы докинуть:)
Кстати там кнопочки 1,2,3 по нажимай, что бы выбрать нужную технику. |
Ответ: много шейдерного света
еще есть вопрос : а можно glsl шейдеры конвертнуть в обычные для ксорса
|
Ответ: много шейдерного света
Нет
|
Ответ: много шейдерного света
Да. glsl/hlsl мало отличий имеют. По-другому называются типы данных и некоторые функции. Разобраться не проблема, даже если ты не знаток шейдеров.
|
Ответ: много шейдерного света
Вложений: 1
интересный шейдер воды написанный на hlsl можете по подробней описать как сконвертировать и заюзать его
|
Ответ: много шейдерного света
Вот шейдер воды http://rghost.ru/43502204 под Xors3d, Юзай!
|
Ответ: много шейдерного света
спасибо , но у меня есть просто куча hlsl шейдеров также из скайрима и фар край 3 но я не совсем понимаю как их использывать
|
Ответ: много шейдерного света
Цитата:
решил добавить еще 1 светильник сам светилькник ;==================================== ; LightSphere Local tLightSpr91=xCreateSphere(1) xEntityFX tLightSpr91,1 xPositionEntity tLightSpr91,130,-35,40 xEntityColor tLightSpr91,255,255,255 xScaleEntity tLightSpr91,2,2,2 xEntityCastShadows tLightSpr91,light0,0 xEntityReceiveShadows tLightSpr91,light0,0 xEntityCastShadows tLightSpr91,light01,0 xEntityReceiveShadows tLightSpr91,light01,0 ;==================================== устонавливаю на модельку xSetEffectVector tModel, "LightClr91",1.5,1.5,1.5 xSetEffectFloat tModel, "LightInt91",1 xSetEffectFloat tModel, "RngLight91",650 xSetEffectFloat tModel, "DotLight91",2 в цикле xSetEffectVector tModel, "PosLight91",xEntityX(tLightSpr91),xEntityY(tLight Spr91),xEntityZ(tLightSpr91) только когда в шейдере светильник прописал он заработал но так не удобно есть ли другой способ создания света ибо у меня колличество светильников динамично |
Ответ: много шейдерного света
Есть
|
Ответ: много шейдерного света
и какой же
|
Ответ: много шейдерного света
объяви в шейдере массив позиций лайтов.
сделай по ним цикл. |
Ответ: много шейдерного света
Я только учусь шейдерам и пока плохо понимаю о чём ты говориш
можно пример этого массива и использывание его в цикле |
Ответ: много шейдерного света
float3 lightPos[100];
----- for(int i=0;i<100;i++) { обрабатываешь lightPos[i] } передавать массивы векторов отдельной командой в ксорсе можно вроде |
Ответ: много шейдерного света
тоесть так :
шейдер float3 PosLight[100]; float RngLight[100]; float RDotLight[100]; const float3 LightClr[100]; // Light Color const float LightInt[100]; // Light Intensity цикл for(int i=0;i<100;i++) { RngLight[i] = pow(saturate(1.0f-(distance(IN.pWorld,PosLight[i])/RngLight[i])),DotLight[i]); cN = normalize(tex2D(TexNormal,IN.TexCoords)*2.0f-1.0f); PosLight[i] = normalize(PosLight[i]-IN.pWorld); nLight[i] = float3(dot(PosLight[i],IN.Tangent), dot(PosLight[i],IN.Binormal),dot(PosLight[i],IN.Normal)); nLight[i] = pow(max(dot(cN,nLight[i]),0.0f),0.8f); Color += cD.rgb*nLight[i]*LightClr[i]*LightInt[i]*RngLight[i]; } только вот на счёт кода не понял |
Ответ: много шейдерного света
типа того, только не надо сто раз то текстуру нормалей читать.
|
Ответ: много шейдерного света
Цитата:
тогда как сделать и еще как создать светильник в коде чтоб он прописался в этот массив , как настроить светильник в массиве , и как обновить его всё это в коде |
Ответ: много шейдерного света
Цитата:
|
Ответ: много шейдерного света
посмотрю
кстати вот попробывал переписать шейдер посмотрите |
Ответ: много шейдерного света
Цитата:
|
Ответ: много шейдерного света
cN = normalize(tex2D(TexNormal,IN.TexCoords)*2.0f-1.0f);
for(int i=0;i<100;i++) { RngLight[i] = pow(saturate(1.0f-(distance(IN.pWorld,PosLight[i])/RngLight[i])),DotLight[i]); PosLight[i] = normalize(PosLight[i]-IN.pWorld); nLight[i] = float3(dot(PosLight[i],IN.Tangent), dot(PosLight[i],IN.Binormal),dot(PosLight[i],IN.Normal)); nLight[i] = pow(max(dot(cN,nLight[i]),0.0f),0.8f); Color += cD.rgb*nLight[i]*LightClr[i]*LightInt[i]*RngLight[i]; } так ?? сори за нубство , просто никогда раньше с шейдерами не сталкивался и вот только начел учится |
Ответ: много шейдерного света
ну это же логика, она что в шейдерах, что в блице одинаковая.
|
Ответ: много шейдерного света
в блитзе по проще
|
Часовой пояс GMT +4, время: 19:42. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot