![]() |
Мультитекстурирование в Xors3D.
Интересует мультитекстурирование в Ксорсе. В обычном блице, юзая FastExtension, я делал карты прозрачности по которым у меня в нужном месте накладывались нужные текстуры.
А вот как это сделать в Ксорсе? Как я понимаю без использование пиксельного шейдера тут дело не обойдется? |
Ответ: Мультитекстурирование в Xors3D.
почему бы и нет)
набросал: не ручаюсь что без ошибок) const float4x4 MatWorldViewProj; texture Diffuse1; //тайл первый, использует 1й текстурный канал texture Diffuse2; //тайл второй, использует 1й текстурный канал texture Mask; //маска, где черное - тайл1, белое - тайл2, использует второй канал sampler2D DiffTex1 = sampler_state { Texture = <Diffuse1>; MagFilter = Linear; MinFilter = Linear; AddressU = Wrap; AddressV = Wrap; }; sampler2D DiffTex2 = sampler_state { Texture = <Diffuse2>; MagFilter = Linear; MinFilter = Linear; AddressU = Wrap; AddressV = Wrap; }; sampler2D MaskTex = sampler_state { Texture = <Mask>; MagFilter = Linear; MinFilter = Linear; AddressU = Wrap; AddressV = Wrap; }; struct vi { float4 Position : POSITION0; float2 TexCoords : TEXCOORD0; float2 TexCoords1 : TEXCOORD1; }; struct pi { float4 Position : POSITION0; float2 TexCoords : TEXCOORD2; float2 TexCoords1 : TEXCOORD3; }; void vs( in vi IN, out pi OUT ) { OUT.Position= mul(IN.Position,MatWorldViewProj); OUT.TexCoords = IN.TexCoords; OUT.TexCoords1 = IN.TexCoords1; } float4 maskedps( in pi IN ) : COLOR0 { float3 diff1=tex2D(DiffTex1,IN.TexCoords); float3 diff2=tex2D(DiffTex2,IN.TexCoords); float mask=tex2D(MaskTex,IN.TexCoords1).r; return float4( lerp(diff1,diff2,mask), 1.0f); } technique masked { pass p0 { AlphaBlendEnable = False; vertexshader = compile vs_2_0 vs(); PixelShader = compile ps_2_0 maskedps(); } } |
Ответ: Мультитекстурирование в Xors3D.
Опа =) Спасибо!
|
Ответ: Мультитекстурирование в Xors3D.
Эм... Это типа 2 текстурных канала разделены альфой и по ней они смешиваются? Это в Хорсе и на ФФП делается, только реализовывал я такую фигу почти 2 года назад поэтому не помню точно номера бленда.
|
Ответ: Мультитекстурирование в Xors3D.
Цитата:
а как семплы откроешь - нефига нужного нет. открываю деклс - мама дорогая, сколько всего непонятного и НИГДЕ не описанного ! Если бы не было Рендера в аське - давно бы забросил ксорс по причине никудышней документации. Представляю, сколько буржуев забросило его по этой причине (остались самые упрямые) Knightmare, нафига текстуры на запись залочил 7 Придется кучу всего переписывать... и убери, наконец, вылет при загрузке при отсутствии файла. Ну оч. напрягает. Привыкли ужо как в блитце - грузанул, проверил, раз ноль, знач нет. зы нарыл пяток багов, вот пытаюсь щас их локализовать. но идет туго (16 к строк в проекте - перевод с рабочего в блитце) КопиРект уже точно не работает как надо. Движение объектов - тоже не такое (динамика вся полетела к чертям, придется все коофициенты менять) но в чем точно загвоздка пока не пойму... (возможно в физике) Шрифт рисуются в тексу в 2 раза больше Далее будет... |
Ответ: Мультитекстурирование в Xors3D.
Цитата:
Цитата:
Цитата:
Насчет шрифтов - думаем прикрутить OpenType, многие хвалят, но надо разбиратся. |
Ответ: Мультитекстурирование в Xors3D.
Цитата:
|
Ответ: Мультитекстурирование в Xors3D.
Да я вот пытался менять - нефига не могу настроить (на блитце 20 мин ушло)
Примитивное направление объекта на цель - не работает колбасит крутит летает вокруг - в цель ну никак не попадет Или слежение камеры за объектом Довольно сложный код, с плавностями всякими, так вот вообще не пашет. Там все основанно на получении координат и углов от объекта и по ним уже камера высчитывает свое положение. Так вот неправильно она это все получает. а уж с парентами - старая история. моск сломан - я так и не понял никаких закономерностей. примитивнейший код : плашка с комиксом перед камерой. внизу 4 маленькие плашки с кнопочками, все паренчено к камере - в блитце все отлично, в ксорсе ваще нефига не видно. 2 часа "ловил" эти плашки чтобы на место поставить. меняешь скейл или положение одной - вторая исчезает... и мавы, мавы мавы... то на рендер ворд то на текстуребуфер, и хрен поймешь от чего. в общем уже 3 дня сижу - игра не пашет... (это все был оффтоп отчаявшегося задроченного багами программиста...) |
Ответ: Мультитекстурирование в Xors3D.
Дык, даешь примеры, все поправим =) Хотя те же паренты я правил, другое дело что когда я с армии вернулся в СВН мы залили не самую свежую версию, так что все может быть.
|
Часовой пояс GMT +4, время: 09:42. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot