Страница 2 из 2
Re: Модели в Halo Reach ничем не лучше, чем игра двухлетней давн
: 28 фев 2010, 22:37
Radek
maxxallie писал(а):Radek,
Оффтопикstatic void Main(string[] args)
{
string one;
one = Console.ReadLine();
int x = Convert.ToInt32(one);
Console.WriteLine(x + 666);
}
сможешь хотя бы это обьяснить ?
ОффтопикВопрос на вопрос:
textures/base/electricwall
{
light 1
q3map_surfacelight 400
{
map $lightmap
rgbGen identity
}
{
map textures/organics/wire02a_f.tga
blendFunc GL_DST_COLOR GL_ZERO
rgbGen identity
}
{
map textures/organics/wire02a_f.blend.tga
blendFunc GL_ONE GL_ONE
}
{
map textures/base/electric.blend.tga
tcMod scroll 1 1 10 20
rgbGen wave sin 1 2 0 1
blendfunc GL_ONE GL_ONE
}
}
И?
Re: Модели в Halo Reach ничем не лучше, чем игра двухлетней давн
: 28 фев 2010, 23:11
maxxallie
Radek,
просто очень смахиваешь на человека которые не зная о чём говорит (:
точнее не понимает
Re: Модели в Halo Reach ничем не лучше, чем игра двухлетней давн
: 28 фев 2010, 23:13
JohnV00
maxxallie писал(а):Radek,
Оффтопикstatic void Main(string[] args)
{
string one;
one = Console.ReadLine();
int x = Convert.ToInt32(one);
Console.WriteLine(x + 666);
}
сможешь хотя бы это обьяснить ?
ОффтопикА ты сможешь? )
Re: Модели в Halo Reach ничем не лучше, чем игра двухлетней давн
: 28 фев 2010, 23:16
maxxallie
надо понимать что в рич в 4 раза больше полигонов чем в крайзис.
и около в двух с половиной раз больше чем в анчартед 2
...ты всё ещё ждёшь пока расскроется потенциал у ЗЫ 3?!...
всё таки я же это написал ((:
СПОЙЛЕР
вертекс шейдер для рендеренга
float4x4 mWVP;
float4x4 mMW;
sampler2D sDisplacement;
uniform float fDisplacementScale;
uniform float fDisplacementBias;
struct VsInput
{
float4 vPosition : POSITION0;
float2 vTexCoord : TEXCOORD0;
float3 vNormal : NORMAL0;
};
struct VsOutput
{
float4 vPosCS : POSITION;
float2 vTexCoord : TEXCOORD0;
float3 vPositionWS : TEXCOORD1;
float3 vNormal : TEXCOORD2;
};
VsOutput VS( VsInput i )
{
VsOutput o;
o.vTexCoord = i.vTexCoord;
o.vNormal = i.vNormal;
// Sample displacement map:
float fDisplacement = tex2Dlod( sDisplacement, float4( i.vTexCoord, 0, 0 )).r;
fDisplacement = (fDisplacement * fDisplacementScale) + fDisplacementBias;
o.vPositionWS = i.vPosition + (fDisplacement * i.vNormal);
// Transform position to clip-space
o.vPosCS = mul( mWVP, float4( o.vPositionWS, 1.0 ) );
return o;
}
float4x4 mWVP;
float4x4 mMW;
sampler2D sDisplacement;
uniform float fDisplacementScale;
uniform float fDisplacementBias;
struct VsInput
{
float3 vBarycentric: BLENDWEIGHT0;
// Superprim vertex 0:
float4 vPositionVert0 : POSITION0;
float2 vTexCoordVert0 : TEXCOORD0;
float3 vNormalVert0 : NORMAL0;
// Superprim vertex 1:
float4 vPositionVert1 : POSITION4;
float2 vTexCoordVert1 : TEXCOORD4;
float3 vNormalVert1 : NORMAL4;
// Superprim vertex 2:
float4 vPositionVert2 : POSITION8;
float2 vTexCoordVert2 : TEXCOORD8;
float3 vNormalVert2 : NORMAL8;
};
struct VsOutput
{
float4 vPosCS : POSITION;
float2 vTexCoord : TEXCOORD0;
float3 vPositionWS : TEXCOORD1;
float3 vNormal : TEXCOORD2;
};
VsOutput VS( VsInput i )
{
VsOutput o;
// Compute new position based on the barycentric coordinates:
float3 vPosTessOS = i.vPositionVert0.xyz * i.vBarycentric.x +
i.vPositionVert1.xyz * i.vBarycentric.y +
i.vPositionVert2.xyz * i.vBarycentric.z;
// Compute new texture coordinates based on the barycentric coordinates:
o.vTexCoord = i.vTexCoordVert0.xy * i.vBarycentric.x +
i.vTexCoordVert1.xy * i.vBarycentric.y +
i.vTexCoordVert2.xy * i.vBarycentric.z;
// Compute new normal based on the barycentric coordinates:
o.vNormal = i.vNormalVert0.xyz * i.vBarycentric.x +
i.vNormalVert1.xyz * i.vBarycentric.y +
i.vNormalVert2.xyz * i.vBarycentric.z;
// Sample displacement map:
float fDisplacement = tex2Dlod( sDisplacement, float4( o.vTexCoord, 0, 0 )).r;
fDisplacement = (fDisplacement * fDisplacementScale) + fDisplacementBias;
o.vPositionWS = vPosTessOS + ( fDisplacement * o.vNormal);
// Transform position to clip-space
o.vPosCS = mul( mWVP, float4( o.vPositionWS, 1.0 ) );
return o;
}
и это всего лишь маленький отрывок кода тесселяции
всего одной модели.
представте сколько надо кода для тесселяции всего и вся как в рич
Re: Модели в Halo Reach ничем не лучше, чем игра двухлетней давн
: 28 фев 2010, 23:25
Radek
maxxallie,
Оффтопиктеперь ответь на мой вопрос

Re: Модели в Halo Reach ничем не лучше, чем игра двухлетней давн
: 28 фев 2010, 23:28
Radek
Оффтопикmaxxallie писал(а):вертекс шейдер для рендеренга
float4x4 mWVP;
float4x4 mMW;
sampler2D sDisplacement;
uniform float fDisplacementScale;
uniform float fDisplacementBias;
struct VsInput
{
float4 vPosition : POSITION0;
float2 vTexCoord : TEXCOORD0;
float3 vNormal : NORMAL0;
};
struct VsOutput
{
float4 vPosCS : POSITION;
float2 vTexCoord : TEXCOORD0;
float3 vPositionWS : TEXCOORD1;
float3 vNormal : TEXCOORD2;
};
VsOutput VS( VsInput i )
{
VsOutput o;
o.vTexCoord = i.vTexCoord;
o.vNormal = i.vNormal;
// Sample displacement map:
float fDisplacement = tex2Dlod( sDisplacement, float4( i.vTexCoord, 0, 0 )).r;
fDisplacement = (fDisplacement * fDisplacementScale) + fDisplacementBias;
o.vPositionWS = i.vPosition + (fDisplacement * i.vNormal);
// Transform position to clip-space
o.vPosCS = mul( mWVP, float4( o.vPositionWS, 1.0 ) );
return o;
}
float4x4 mWVP;
float4x4 mMW;
sampler2D sDisplacement;
uniform float fDisplacementScale;
uniform float fDisplacementBias;
struct VsInput
{
float3 vBarycentric: BLENDWEIGHT0;
// Superprim vertex 0:
float4 vPositionVert0 : POSITION0;
float2 vTexCoordVert0 : TEXCOORD0;
float3 vNormalVert0 : NORMAL0;
// Superprim vertex 1:
float4 vPositionVert1 : POSITION4;
float2 vTexCoordVert1 : TEXCOORD4;
float3 vNormalVert1 : NORMAL4;
// Superprim vertex 2:
float4 vPositionVert2 : POSITION8;
float2 vTexCoordVert2 : TEXCOORD8;
float3 vNormalVert2 : NORMAL8;
};
struct VsOutput
{
float4 vPosCS : POSITION;
float2 vTexCoord : TEXCOORD0;
float3 vPositionWS : TEXCOORD1;
float3 vNormal : TEXCOORD2;
};
VsOutput VS( VsInput i )
{
VsOutput o;
// Compute new position based on the barycentric coordinates:
float3 vPosTessOS = i.vPositionVert0.xyz * i.vBarycentric.x +
i.vPositionVert1.xyz * i.vBarycentric.y +
i.vPositionVert2.xyz * i.vBarycentric.z;
// Compute new texture coordinates based on the barycentric coordinates:
o.vTexCoord = i.vTexCoordVert0.xy * i.vBarycentric.x +
i.vTexCoordVert1.xy * i.vBarycentric.y +
i.vTexCoordVert2.xy * i.vBarycentric.z;
// Compute new normal based on the barycentric coordinates:
o.vNormal = i.vNormalVert0.xyz * i.vBarycentric.x +
i.vNormalVert1.xyz * i.vBarycentric.y +
i.vNormalVert2.xyz * i.vBarycentric.z;
// Sample displacement map:
float fDisplacement = tex2Dlod( sDisplacement, float4( o.vTexCoord, 0, 0 )).r;
fDisplacement = (fDisplacement * fDisplacementScale) + fDisplacementBias;
o.vPositionWS = vPosTessOS + ( fDisplacement * o.vNormal);
// Transform position to clip-space
o.vPosCS = mul( mWVP, float4( o.vPositionWS, 1.0 ) );
return o;
}
и это всего лишь маленький отрывок кода тесселяции
всего одной модели.
представте сколько надо кода для тесселяции всего и вся как в рич
Это всё хуита. Когда я писал скрипты к моду третьей кваши, я пробивал трёхэтажные команды, натягивая на модель Крэш по 10 текстур и слоёв - каждые со своей бледностью, подсветкой, траекторией движения и каналом. Всё зависит от фантазии программера... и от размера DVD ессно
Re: Модели в Halo Reach ничем не лучше, чем игра двухлетней давн
: 28 фев 2010, 23:33
maxxallie
Оффтопикквэйк..
чёрт обожаю его (:
я посчитал.
получается на модель около 300-400 строк кода без HLSL
чуток переборщил
(((:
около 300 строк
Re: Модели в Halo Reach ничем не лучше, чем игра двухлетней давн
: 28 фев 2010, 23:40
Radek
ОффтопикСПОЙЛЕР
models/mapobjects/console/under
{
cull disable
surfaceparm alphashadow
//surfaceparm nodraw
{
clampmap models/mapobjects/console/under.tga
alphaFunc GE128
depthWrite
rgbGen vertex
}
}
models/mapobjects/console/rotate
{
cull disable
{
clampmap models/mapobjects/console/rotate.tga
blendFunc add
//tcMod stretch sin .9 0.1 0 .5
tcmod rotate 40
rgbGen vertex
}
}
models/mapobjects/console/centercon
{
cull disable
{
map models/mapobjects/console/scrolltext.tga
blendFunc add
tcmod scroll 0 -.3
//tcMod stretch sin .9 0.1 0 1.1
rgbGen vertex
}
{
clampmap models/mapobjects/console/centercon.tga
blendFunc add
tcMod stretch sin .9 0.1 0 .2
tcmod rotate 40
rgbGen vertex
}
}
models/mapobjects/console/console
{
cull disable
{
map textures/effects/tinfx2c.tga
blendFunc GL_ONE GL_ZERO
tcGen environment
rgbGen vertex
}
{
map models/mapobjects/console/console.tga
blendFunc blend
rgbGen vertex
}
{
map models/mapobjects/console/console2.tga
blendFunc add
rgbGen vertex
rgbGen wave sin .5 .5 0 .2
}
}
models/mapobjects/console/sphere
{
cull disable
{
map models/mapobjects/console/spherex2.tga
blendFunc add
tcmod rotate 40
tcGen environment
tcmod scroll 5 .4
rgbGen wave sin .5 .5 0 .2
}
{
map models/mapobjects/console/spherex.tga
blendFunc add
tcmod rotate 40
tcGen environment
tcmod scroll 5 .4
rgbGen wave sin .5 .5 0 -.2
}
}
models/mapobjects/console/sphere2
{
cull disable
deformVertexes autoSprite
//{
// clampmap models/mapobjects/console/sphere2.tga
// alphaFunc GE128
// depthWrite
// //tcMod stretch sin .9 0.1 0 .5
// tcmod rotate 40
// rgbGen identity
//}
{
map models/mapobjects/console/sphere3.tga
blendFunc add
// depthWrite
rgbGen wave sin .5 .5 0 .2
}
{
map models/mapobjects/console/sphere4.tga
blendFunc add
// depthWrite
rgbGen wave sin .5 .5 0 -.2
}
{
clampmap models/mapobjects/console/sphere2.tga
alphaFunc GE128
//blendfunc blend
//depthWrite
//tcMod stretch sin .9 0.1 0 .5
tcmod rotate 40
rgbGen identity
}
}
models/mapobjects/console/jacobs
{
cull disable
{
map textures/effects/tinfxb.tga
blendFunc add
tcGen environment
rgbGen identity
}
}
models/mapobjects/console/scrolltext
{
cull disable
{
map models/mapobjects/console/scrolltext.tga
blendFunc add
tcmod scroll 0 -.3
//tcMod stretch sin .9 0.1 0 1.1
rgbGen vertex
}
}
models/players/slash/yurikoskate
{
cull disable
deformVertexes autoSprite
{
clampmap models/players/slash/yurikoskate.tga
blendFunc blend
//tcMod stretch sin .9 0.1 0 1.1
tcmod rotate 999
rgbGen lightingdiffuse
}
{
clampmap models/players/slash/yurikoskate.tga
blendFunc blend
//tcMod stretch sin .9 0.1 0 -1.1
tcMod stretch sin .9 0 0 0
tcmod rotate 20
rgbGen lightingdiffuse
}
}
models/players/slash/yuriko
{
{
map textures/effects/envmaproc.tga
tcGen environment
rgbGen lightingdiffuse
}
{
map models/players/slash/yuriko.tga
blendFunc blend
rgbGen lightingdiffuse
}
}
models/players/slash/yuriko_h
{
{
map textures/effects/envmaproc.tga
tcGen environment
rgbGen lightingdiffuse
}
{
map models/players/slash/yuriko_h.tga
blendFunc blend
rgbGen lightingdiffuse
}
}
models/players/hunter/harpy
{
{
map textures/effects/envmaproc.tga
tcGen environment
rgbGen lightingdiffuse
}
{
map models/players/hunter/hunter2.tga
blendFunc blend
rgbGen lightingdiffuse
}
}
models/players/hunter/harpy_h
{
{
map textures/effects/envmaproc.tga
tcGen environment
rgbGen lightingdiffuse
}
{
map models/players/hunter/hunter_h.tga
blendFunc blend
rgbGen lightingdiffuse
}
}
models/players/hunter/harpy_f
{
surfaceparm nodraw
}
models/mapobjects/standlamp2
{
{
map textures/effects/tinfx2.tga
tcGen environment
rgbGen identity
}
{
map models/mapobjects/standlamp2.tga
blendfunc blend
rgbGen vertex
}
}
models/players/uriel/zael
{
{
map $whiteimage
rgbGen lightingDiffuse
}
{
map models/players/uriel/zael.tga
blendFunc GL_DST_COLOR GL_SRC_ALPHA
rgbGen identity
alphaGen lightingSpecular
}
}
models/mapobjects/pipe/pipe02
{
{
map textures/effects/tinfx2d.tga
tcGen environment
rgbGen identity
}
{
map models/mapobjects/pipe/pipe02.tga
blendfunc blend
rgbGen lightingdiffuse
}
}
models/players/slash/grrl_h
{
{
map textures/effects/tinfx2d.tga
tcGen environment
rgbGen identity
}
{
map models/players/slash/grrl_h.tga
blendfunc blend
rgbGen lightingdiffuse
}
}
models/mapobjects/pipe/pipe02x
{
q3map_lightimage textures/sfx/electricslime_old.tga
q3map_surfacelight 150
cull disable
{
map textures/effects/tinfx2b.tga
tcGen environment
tcmod scale 1 2
blendfunc add
rgbGen identity
}
{
map textures/sfx/electricslime_old.tga
//tcGen environment
//tcmod scale 2 2
//tcmod rotate 240
tcmod scroll 7.2 1
blendfunc add
rgbGen identity
}
}
models/mapobjects/skull/monkeyhead
{
//deformVertexes wave 100 sin 0 .7 0 .2
//deformVertexes wave 100 sin 0 .5 1 .1
cull disable
nomipmaps
{
map models/mapobjects/skull/monkeyhead.tga
rgbGen vertex
}
{
//animMap 0.5 models/mapobjects/skull/monkeyhead.tga //models/mapobjects/wallhead/femhead2.tga
map models/mapobjects/skull/monkeyheadb.tga
blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
alphaGen wave sin 0 1 1 .1
// alphaGen wave triangle 0 .7 0 .2
rgbGen vertex
}
}
models/mapobjects/skull/monkeyhead2
{
cull disable
surfaceparm trans
nomipmaps
{
map models/mapobjects/skull/monkeyhead2.tga
blendfunc blend
depthWrite
rgbGen vertex
}
}
models/powerups/armor/shard2
{
{
map textures/effects/tinfx2c.tga
tcGen environment
rgbGen identity
}
{
map models/powerups/armor/shard2.tga
blendFunc blend
rgbGen lightingdiffuse
}
}
models/mapobjects/jets/jet_1
{
surfaceparm trans
nomipmaps
cull disable
{
map models/mapobjects/jets/jet_1.tga
blendFunc add
tcmod scale .5 1
tcmod scroll 6 0
rgbGen identity
}
{
map models/mapobjects/jets/jet_2.tga
blendFunc add
tcmod scroll 3 -.5
rgbGen wave inversesawtooth -.3 1.3 0 .5
}
}
models/mapobjects/jets/jet_as
{
deformVertexes autoSprite2
deformVertexes wave 100 sin 0 1 0 9
surfaceparm trans
nomipmaps
{
map models/mapobjects/jets/jet_as.tga
blendFunc add
rgbGen identity
}
}
models/players/crash/crash_f
{
{
map textures/sfx/snow.tga
tcmod scale .5 .5
tcmod scroll 9 0.3
rgbGen identity
}
{
map textures/effects/tinfx2b.tga
tcGen environment
blendFunc add
rgbGen lightingdiffuse
}
}
models/players/crash/crash_t
{
{
map textures/effects/envmapblue.tga
tcGen environment
rgbGen lightingdiffuse
}
{
map models/players/crash/crash_t.tga
blendFunc blend
rgbGen lightingdiffuse
}
}
models/players/crash/crash
{
{
map textures/effects/envmapblue.tga
tcGen environment
rgbGen lightingdiffuse
}
{
map models/players/crash/crash.tga
blendFunc blend
rgbGen lightingdiffuse
}
}
models/players/razor/id
{
{
map textures/effects/tinfx2d.tga
tcGen environment
rgbGen lightingdiffuse
}
{
map models/players/razor/id.tga
blendFunc blend
rgbGen lightingdiffuse
}
}
Вот тебе одна десятая часть кода для оригинальных моделей третьего квуэйка. Весит файл 92 кб. Да он простоват, но год ведь 99. В моём моде этот файл разросся до 200 кб. Квэйк 3 был даже на DreamCast. Так что твой код ещё не о чём не говорит. Промолчим про оптимизацию.
Оффтопикmaxxallie писал(а):я посчитал.
получается на модель около 300-400 строк кода без HLSL
То, что ты привёл - это совокупность скриптов для объектов, работающие отдельно, а не единый код.
В основе этого подхода лежала идея, что объект, расположенный далеко от точки обзора, будет менее детализирован, потому что его тяжело рассмотреть, но по мере его приближения число треугольников в изображении этого объекта экспоненциально увеличивается с целью увеличения его детализации для того, чтобы он выглядел более реалистично. Достоинством этого метода является то, что, когда рассматривает полностью просчитанное изображение, среднее количество обработанных треугольников остается близко к постоянному значению, так что игроку значительно реже приходится сталкиваться с резкими падениями производительности.
Кстати, а ты не в курсе, что некое подобие тесселяции было придумано не в 2005 году, в том же Квэйке шла подмена модели - пускай эта была примитивная замена объекта, НО - принцип и результат тот же
СПОЙЛЕР
Here:

Re: Модели в Halo Reach ничем не лучше, чем игра двухлетней давн
: 01 мар 2010, 00:59
JohnV00
maxxallie писал(а):надо понимать что в рич в 4 раза больше полигонов чем в крайзис.
и около в двух с половиной раз больше чем в анчартед 2
Это вообще нечто ) Уверен, что понимаешь о чем говоришь?
Рич похоже потянет только след. поколение Xbox

Re: Модели в Halo Reach ничем не лучше, чем игра двухлетней давн
: 01 мар 2010, 03:04
loser
Миллион полигонов? Откуда инфа? (Из блога мистериксмедиа?)
Отрывок кода тесселяции кажись тоже оттуда ок.
Мне кажется после демонстрации Кроноса из ГоВ 3 ящики должны были уже смекнуть что к чему и повально покупать сонечки.
Re: Модели в Halo Reach ничем не лучше, чем игра двухлетней давн
: 01 мар 2010, 12:46
Online
maxxallie писал(а):вы сами не замечаете как начинаете бредить с пеной во рту ?
Абсолютно согласен. Большинство версусов просто ни о чем.
А Резистанс 2 - параша, мягко говоря. Даже 1-я была лучше.
Re: Модели в Halo Reach ничем не лучше, чем игра двухлетней
: 29 апр 2010, 22:08
AK-47(RUS)
maxxallie, ОМГ ! ты чё далбоёб уже совсем ? в Риче больше полигонов чем в КИЛЛзон3 и унч 2 ? ты чё ваще уже с катушок съехал ))) в Киллзоне 2 на 74% больше полигонов чем в риче дура )))
Re: Модели в Halo Reach ничем не лучше, чем игра двухлетней
: 30 апр 2010, 01:29
fet1234
AK-47(RUS), учись общаться, надоедает твои неадекватные посты смотреть