Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 30.06.2011, 20:28   #106
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Имитация водной поверхности.

Хорошо иметь общую картинку, затем определить цели, и выделить из общего конкретные области деятельности, и изучать их. Тогда твоя работа в само образовании будет более направлена на конкретику, и КПД будет выше.

Насчёт матриц, не совсем. Ну тут относительно, порой и нужно делать что-то. Например для проекции текстуры на окружение подобие фонарика например, то тут нужно воспользоваться матрицей проекции, но по сути знать как она устроена, и не обязательно, главное знать как она работает и что нужно с ней делать, а внутрянка - это второстепенное

Насчёт матриц, также. Нужно понимать чем является положение пикселя или вершины в представлении шейдера. И знать как переводить их в мировые координаты (3D), или как получить их координаты на экране (2D). Но это снова, матрицы задействованы, но не нада знать как реализованы, главное научиться пользоваться ими, и знать ожидаемый результат.

Я не "гуру", мне ещё ой как много чего предстоит изучать и изучать. Да и знания - это меньшая состовляющая успешного программиста. Важнее способности. И всё это бесполезно без корректной философии и психологии самого программиста. Иметь способности, и не иметь мотивации - это слабо и ужасно
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
Mr_F_ (30.06.2011), Nex (01.07.2011), St_AnGer (30.06.2011)
Старый 30.06.2011, 22:21   #107
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Имитация водной поверхности.

Я с вас не могу.
Просил редактор с подсветкой синтаксиа hlsl

молчаниё.

Текстовый редактор http://pnotepad.googlecode.com/files..._multilang.exe
Модуль для подсветки http://pnotepad.googlecode.com/files/hlsl.scheme
2 с копейками метров.
родная справка http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

Спрашивал про шейдеры. Нет, что бы сказать, что раз ты умеешь по формулам несколько не типично вертеть геометрией, то твоя проблема в освоении шейдеров, это просечь структуру данных транслируемых в шейдер, сами команды и потом радоваться спектру расширившихся возможностей. И что шейдеры к движку отношения не имеют.

Я понимаю телепаты в отпуске, но, блин, вы как Моисеи


Терь по делу, а из шейдера в движок данные передаются? То есть если я захочу на большой массив данных воздействовать и потом в игровой логике как-нить задействовать полученные изменения?
(Offline)
 
Ответить с цитированием
Старый 30.06.2011, 22:33   #108
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Имитация водной поверхности.

Терь по делу, а из шейдера в движок данные передаются?
никак. за исключением - отрендерить в текстуру и перекачать её в ОЗУ. но это дико медленно.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dsd (30.06.2011)
Старый 30.06.2011, 22:45   #109
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Имитация водной поверхности.

Ну и ладно Мне бы к середине июля научиться бульбочки от капель на поверхностях имитировать
(Offline)
 
Ответить с цитированием
Старый 30.06.2011, 23:30   #110
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Имитация водной поверхности.

dsd, здесь ни кто, ни кому, ничего не обязан.
То что ты нашёл ответы на свои вопросы сам - это круто, больше знаний и опыта приобрёл, нежели если бы получил ответы от кого-то.
Да и подобный способ "ворчания", ради "показухи", говорит лишь о молодости как программиста - для тебя это ново, и нужно мнение окружающих. Весьма естественно для многих начинающих, но смотри, чтобы потом, когда внимание окружающих уже не будет так доставлять, чтобы ты не загнулся в этой деятельности..
(Offline)
 
Ответить с цитированием
Старый 30.06.2011, 23:43   #111
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Имитация водной поверхности.

Как программисту мне целых четыре недели, зарабатывать "этим" на жизнь я не собираюсь. Есть куда более простые способы
Просто в конце мая заподозрил в себе старческую деменцию.Вот и борюсь как умею

Но за идейку с шейдерами спасибо, хороша.
(Offline)
 
Ответить с цитированием
Старый 01.07.2011, 00:41   #112
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Имитация водной поверхности.

четвертый стобец (строка) обычно вида 0 0 0 1. он нужен в финальном аккорде расписанном Mr_f-ом. при домножении на матрицу проекции. тогда там в конце будет не 1-ца а число - грубо говоря показывающее как далеко находится zFar от камеры. на него потом делятся позиции по координатным осям x и y для того чтобы пиксели выводились в единичном кубе. потом етот куб расширяется вьюпортом до нужного параллелипипеда (расширяются только x,y оси)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dsd (01.07.2011)
Старый 01.07.2011, 01:39   #113
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Имитация водной поверхности.


Сделал генератор меша для воды, теперь можно настраивать детализацию ^_^ по непонятной причине фпс при равных полигонах вырос. Вместо 68-72 75-78.
supermesh=xCreateMesh()
surf=xCreateSurface(supermesh)
maxi=40
maxd=26
For i=0 To maxi
y#=0.45*i*i
x0#=-y
dx#=2*y/maxd
For d=0 To maxd
xAddVertex(surf,y,0,x0+dx*d,i,d)
Next 
Next
qvert=xCountVertices(surf)
For i=0 To maxi-1
For d=0 To maxd-1
v0=i*(maxd+1)+d
v1=v0+1
v2=i*(maxd+1)+maxd+1+d
v3=v2+1
If v3<qvert Then 
xAddTriangle (surf,v0,v1,v2)
xAddTriangle (surf,v1,v3,v2)
EndIf
Next
Next
xRotateMesh supermesh,0,135,0 
watermesh=supermesh
(Offline)
 
Ответить с цитированием
Старый 01.07.2011, 03:45   #114
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Имитация водной поверхности.

Толи баг, толи фича.
Если в команду xVertexCoords surf,i,x00,z01,y00
вместо нормальной поверхности по ошибке воткнуть идэнтити этой поверхности, то вместо мава падает.

Хмм.

Последний раз редактировалось dsd, 10.08.2011 в 03:06.
(Offline)
 
Ответить с цитированием
Старый 01.07.2011, 13:57   #115
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Имитация водной поверхности.

Если в команду xVertexCoords surf,i,x00,z01,y00
вместо нормальной поверхности по ошибке воткнуть идэнтити этой поверхности
в нормальных языках (со строгой типизацией или, еще лучше, с ООП дизайном) будет вообще ошибка компиляции
(Offline)
 
Ответить с цитированием
Старый 01.07.2011, 18:19   #116
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Имитация водной поверхности.


Написал первый эскиз бесконечного террэйна
Include "xors3d.bb" 
Global pivot,camera,mxs#,mys#,Light,watertex,watermesh,terrain
Dim waterplane#(0,0)
Dim TerrainData#(0,0)
Dim heightmap#(0,0)
xGraphics3D(600,400, 32,0, 0)


 watermesh=CreateTrianMesh(20,50,0.35)
preparations()
watertex=xLoadTexture("maps/water.jpg")
xEntityTexture (watermesh,watertex)


terrain=CreateTrianMesh(50,50,0.15)
 terraintex=xLoadTexture("maps/Rockwall_Diffuse.jpg")
xEntityTexture (terrain,terraintex)
prepareterraindata()


While(Not (xKeyHit(KEY_ESCAPE) Or xWinMessage("WM_CLOSE")))

EndlessTerrain(10)
GrimMagicWater(watermesh,3,6,10,Rnd(0.05,0.08),1)

xUpdateWorld
xRenderWorld()
Control(3.2,1)
xText 200,300,terraindata#(Rand(0,200),0)
        xFlip() 
Wend

End

Function endlessterrain(gridsize#)
xPositionEntity (terrain,xEntityX(camera,1),0,xEntityZ(camera,1))
xRotateEntity (terrain,0,xEntityYaw(camera,1)-45,0 )

surf=xGetSurface(terrain,0)
qvert=xCountVertices(surf)
For i=0 To qvert-1
x00#=terraindata(i,0)
y00#=terraindata(i,2)
xTFormPoint x00,0,y00,terrain,0
x01#=xTFormedX()
y01#=xTFormedZ()
;так  имею
v0=Int(x01/gridsize#)
v1=v0+1
u0=Int(y01/gridsize#)
u1=u0+1
If (v0>=0 And u0>=0) And (v1<=255 And u1<=255) Then
v01#=heightmap#(v0,u0)
v11#=heightmap#(v1,u0)
v21#=heightmap#(v0,u1)
v31#=heightmap#(v1,u1)
dx#=x01/gridsize-v0
dy#=y01/gridsize-u0
dx1#=-(V01-V11)*dx
dx2#=-(V21-V31)*dx
virtvert1#=v01+dx1
virtvert2#=v21+dx2
z01#=virtvert1+(virtvert2-virtvert1)*dy
Else 
z01#=0
EndIf
xVertexCoords surf,i,x00,z01,y00
xVertexTexCoords surf,i,x01/15,y01/15

Next
xUpdateNormals terrain
End Function



Function  GrimMagicWater(meshid,waveheight#,horizwave#,wavelength#,Noiseamplitude#,speed#)
xPointEntity light,camera
xPositionEntity (light,225*Sin(xMillisecs()/30),145,225*Cos(xMillisecs()/30))
xPositionEntity (watermesh,xEntityX(camera,1),0,xEntityZ(camera,1))
xRotateEntity (watermesh,0,xEntityYaw(camera,1)-45,0 )
If xEntityY(camera,1)<1 Then xPositionEntity camera,xEntityX(camera,1),1,xEntityZ(camera,1),1
xScaleTexture watertex,1+Sin(xMillisecs()/100)/10,1+Cos(xMillisecs()/50)/10
;wavelength#=10 ; меньшее значение означает большую длину
wavehorizlength#=35
time#=xMillisecs()*speed
mesh=meshid
meshsurf=xGetSurface(mesh,0)
qvert=xCountVertices(meshsurf)
For i=0 To qvert-1
x000#=waterplane#(i,0)
y000#=waterplane#(i,2)
z000#=0
xTFormPoint (x000,z000,y000,mesh,0)
x00#=xTFormedX()
y00#=xTFormedZ()

z01#=waveheight*Cos(time/wavelength+x00*wavelength/3)+horizwave*Sin(time/wavehorizlength#+y00*wavelength/5)
x01#=x00-waveheight*Cos(time/wavelength+x00*wavelength/3)
y01#=y00-horizwave*Sin(time/wavehorizlength#+y00*wavelength/5)
xTFormPoint (x01,z01,y01,0,mesh)
xVertexCoords meshsurf,i,xTFormedX(),xTFormedY(),xTFormedZ()
xVertexTexCoords meshsurf,i,x00/25,y00/25
Next
xUpdateNormals mesh
End Function

Function preparations()
pivot=xCreatePivot()
camera = xCreateCamera(pivot)
light = xCreateLight()

mesh=watermesh
surf=xGetSurface(mesh,0)
qvert=xCountVertices(surf)
Dim waterplane#(qvert,3)
For i=0 To qvert-1
waterplane#(i,0)=xVertexX(surf,i) ;x
waterplane#(i,1)=xVertexY(surf,i) ;x
waterplane#(i,2)=xVertexZ(surf,i) ;x
Next

Return watermesh
End Function

Function CreateTrianMesh(maxd,maxi,zqual#)
supermesh=xCreateMesh()
surf=xCreateSurface(supermesh)
For i=5 To maxi+5
y#=zqual#*i*i
x0#=-y
dx#=2*y/maxd
For d=0 To maxd
xAddVertex(surf,y,0,x0+dx*d,i,d)
Next 
Next
qvert=xCountVertices(surf)
For i=0 To maxi-1
For d=0 To maxd-1
v0=i*(maxd+1)+d
v1=v0+1
v2=i*(maxd+1)+maxd+1+d
v3=v2+1
If v3<qvert Then 
xAddTriangle (surf,v0,v1,v2)
xAddTriangle (surf,v1,v3,v2)
EndIf
Next
Next
xRotateMesh supermesh,0,135,0 

Return supermesh
End Function


Function prepareterraindata()
mesh=terrain
surf=xGetSurface(mesh,0)
qvert=xCountVertices(surf)
Dim TerrainData#(qvert,3)
For i=0 To qvert-1
TerrainData#(i,0)=xVertexX(surf,i) ;x
TerrainData#(i,1)=xVertexY(surf,i) ;x
TerrainData#(i,2)=xVertexZ(surf,i) ;x
Next

;делаю карту высот
Dim heightmap#(256,256)
For x=0 To 255
For y=0 To 255
heightmap#(x,y)=15*Sin(24*x)+14*Cos(9*y); (x,y);Rnd(-3.3,0.3); высота террэйна будет колебаться в этих пределах
Next 
Next 
End Function

Function control(speed#,mousesensitivity#)
If xKeyDown(key_1) Then xWireframe(True) Else xWireframe(False)
        xText(10, 10, "FPS: " + xGetFPS()) 	
 		xText(10,30,"Trisinview: "+xTrisRendered ())
mxs#=mxs#+(xMouseXSpeed()/5.0)
mys#=mys#+(xMouseYSpeed()/5.0)
xRotateEntity (camera,mousesensitivity#*mys#,-mousesensitivity#*mxs#,0)
xMoveMouse xGraphicsWidth()/2,xGraphicsHeight()/2
If xKeyDown(17) Or xKeyDown(200) xMoveEntity camera,0,0,speed#
If xKeyDown(31) Or xKeyDown(208) xMoveEntity camera,0,0,-speed#
If xKeyDown(30) Or xKeyDown(203) xMoveEntity camera,-speed#,0,0
If xKeyDown(32) Or xKeyDown(205) xMoveEntity camera,speed#,0,0
xPositionEntity pivot,xEntityX#(camera,1),xEntityY#(camera,1),xEntityZ#(camera,1)
xPositionEntity camera,0,0,0
End Function
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо dsd за это полезное сообщение:
maxturbo (01.07.2011), NitE (01.07.2011), Program23 (01.07.2011), Reks888 (01.07.2011)
Старый 02.07.2011, 00:27   #117
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Имитация водной поверхности.

http://denull.ru/terrain.htm медитировал на это. Если избавится от "дребезга" поверхности будет уже интересно
(Offline)
 
Ответить с цитированием
Старый 02.07.2011, 17:54   #118
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Имитация водной поверхности.


Пересадил на блитз "Алгоритм «diamond-square» для построения фрактальных ландшафтов" Потратил шесть часов на отладку неправильного метода, написал правильный за 20 минут. Я дебил или теперь так будет всегда?

Уважаемые знатоки, какого демона, этот шайтан код на основе рандомных значений рисует одну и туже картинку
Graphics3D 536,536,0,2
SetBuffer BackBuffer
()
Print 
"some kind of log"

Global xelements,yelements,maxd,img,h#

SeedRnd=MilliSecs()
z=Rand(20,4500)
xelements=512
yelements
=512
While  Not z=Or KeyHit(1)
maxd=maxd+1
z
=xelements Shr maxd
Wend
maxd
=maxd-1
Print "number of repetitions: "+maxd

Dim heightmap
#(xelements,yelements,2)
heightmap#(0,0,0)=Rnd(-5,5)                                                 heightmap#(0,0,1)=1
heightmap#(xelements-1,0,0)=Rnd(-5,5)                            heightmap#(xelements-1,0,1)=1
heightmap#(0,yelements-1,0)=Rnd(-5,5)                            heightmap#(0,yelements-1,0)=1
heightmap#(xelements-1,yelements-1,0)=Rnd(-5,5)        heightmap#(xelements-1,yelements-1,0)=1

h00#=heightmap#(0,0,0)
h10#=heightmap#(xelements-1,0,0)
h01#=heightmap#(0,yelements-1,0)
h11#=heightmap#(xelements-1,yelements-1,0)


For d=maxd To 0 Step -
For x0=0 To xelements-1
For y0=0 To yelements-1

    bz
=2^(d-1) ;&#242;åêóùèé ðàäèóñ âîêðóã òî÷êè
    
            
; &#242;åïåðü ãðàíèöû ìàññèâà íåíàðóøàåìû â ïðèíöèïå.
            
x000=Abs((x0-bzMod xelements)
            
y000=Abs((y0-bzMod yelements)
            
x001=Abs((x0+bz)Mod yelements)
            
y001=Abs((y0+bz)Mod yelements)            
            
x002=Abs((x0+bz-1)Mod yelements)
            
y002=Abs((y0+bz-1)Mod yelements)
            ; &
#226;åðøèíû â óãëàõ êâàäðàòà ñîäåðæàùåãî òî÷êó â öåíòðå
            
If heightmap#(x000,y000,1)=1 x00#=heightmap#(x000,y000,0)
            
If heightmap#(x001,y000,1)=1 x01#=heightmap#(x001,y000,0)
            
If heightmap#(x000,y001,1)=1 x10#=heightmap#(x000,y001,0)
            
If heightmap#(x001,y001,1)=1 x11#=heightmap#(x001,y001,0)
            
;&#239;ðîâåðÿþ âåðøèíû íà âàëèäíîñòü çíà÷åíèé
            
If heightmap#(x001,y001,1)=1 And heightmap#(x000,y001,1)=1 And heightmap#(x001,y000,1)=1 And heightmap#(x000,y000,1)=1 Then
                
;&#229;ñëè ïðîâåðêà âûïîëíèëàñü ðèñóþ òî÷êè åñëè â âàëèäíîì ñëîå 0
                
If Not heightmap#(x0,y0,1)=1 heightmap#(x0,y0,0)=(x00+x01+x10+x11)/4+1.44*bz*Rnd(-0.2,0.2)
                
If Not heightmap#(x000,y0,1)=1 heightmap#(x000,y0,0)=(x00+x10)/2+bz*Rnd(-0.1,0.1)
                
If Not heightmap#(x001,y0,1)=1 heightmap#(x001,y0,0)=(x01+x11)/2+bz*Rnd(-0.1,0.1)
                
If Not heightmap#(x0,y000,1)=1 heightmap#(x0,y000,0)=(x00+x01)/2+bz*Rnd(-0.1,0.1)
                
If Not heightmap#(x0,y001,1)=1 heightmap#(x0,y001,0)=(x11+x10)/2+bz*Rnd(-0.1,0.1)
                
;&#240;èñóþ ïî 1 ñëîþ âàëèäàòîðû
                
heightmap#(x0,y0,1)=1
                
heightmap#(x000,y0,1)=1
                
heightmap#(x001,y0,1)=1
                
heightmap#(x0,y000,1)=1
                
heightmap#(x0,y001,1)=1
                        
            
EndIf
        

Next 
Next 
Print Abs((d-maxd)*100/maxd)+"%      "+(xelements-1)Mod (1 Shl d) + "      " bz
Next
Print "Array is ready"

MakeImage()



While 
Not  ((KeyDown(56) And KeyHit(62)) Or  (KeyHit(56) And KeyDown(62))  Or KeyHit(1))

UpdateWorld
RenderWorld
ClsColor 0
,75,151
Cls
DrawImage img
,12,12

;Text 200,400,17 Mod (1 Shl 8)
;
Text 200,420,hmin+"     "+hmax

Text 0
,0,1 Shl 8
Flip
Wend
End

Function MakeImage()
Print 
"Making image"
;&#227;ðàôè÷åñêîå îòîáðàæåíèå ìîåãî ìàññèâà
hmax#=0
hmin#=0
For x=1 To xelements 
For y=1 To yelements 
x0
=x-1
y0
=y-1
If heightmap#(x0,y0,0)>hmax Then hmax=heightmap#(x0,y0,0)

If heightmap#(x0,y0,0)<hmin Then hmin=heightmap#(x0,y0,0)
Next 
Next 

h
#=hmax-hmin
Print h+"   Begin of building image"
img=CreateImage(xelements,yelements)
SetBuffer ImageBuffer(img)
ClsColor 255,0,0
Cls
For x=1 To xelements 
For y=1 To yelements 
x0
=x-1
y0
=y-1
d
=255*(heightmap#(x0,y0,0)-hmin)/h#

;If x0>xelements/2 Then d=Rand(0,255) ; for viewing regular noisejust to find is there any difference or not
Color d
,d,d
;If heightmap#(x0,y0)=0 Then Color 127,127,255 ;for showing sea level

Plot x0,y0

Next 
Next 
SetBuffer BackBuffer
()
;
ScaleImage img,4,4
;&#234;îíåö ñîçäàíèÿ ãðàôè÷åñêîãî ïðåäñòàâëåíèÿ ìàññèâà
End Function 

Последний раз редактировалось dsd, 10.08.2011 в 03:06.
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо dsd за это полезное сообщение:
Arton (27.05.2013), Mr_F_ (02.07.2011), Nex (02.07.2011), Program23 (02.07.2011)
Старый 02.07.2011, 18:00   #119
Program23
Бывалый
 
Аватар для Program23
 
Регистрация: 26.04.2009
Адрес: Россия, Уфа
Сообщений: 680
Написано 182 полезных сообщений
(для 406 пользователей)
Ответ: Имитация водной поверхности.

Я убрал знак равенства между SeedRnd MilliSecs() и у меня вроде бы работает)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dsd (02.07.2011)
Старый 02.07.2011, 18:02   #120
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Имитация водной поверхности.

Фух, хотел заново переписывать

Вроде мой первый действительно полезный код
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо dsd за это полезное сообщение:
LLI.T.A.L.K.E.R. (03.07.2011), Program23 (02.07.2011)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 07:53.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com