предлагаю в этой теме делиться опытом всем, кто имел дело с этим движком, возможно ссылками на литературу, ресурсы и примеры.
хочу поделиться исходным кодом OGRE 1.6.2. Shoggoth для Visual Studio C++ 2005 SP1 готовым для сборки. также, из исходников собираются все необходимые движку библиотеки: zlib, FreeImage, FreeType, etc. собираются только основная библиотека ogre и dx9 рендер.
полученный .exe (никакие длл-ки для запуска больше не требуютя) test (copy 2).rar
HappyMenses
27.05.2009, 06:35
Чё, Source тебя больше не интересует? )))
centrino
27.05.2009, 15:06
ты хочешь спросить собираюсь ли я переписывать рендер из source engine? нет, и никогда не задавался подобной целью ибо в ближайшие несколько лет у меня точно ничего не получится
но кое-что полезное в исходниках source подчерпнуть удается, вот предыдущий пример с некоторыми изменениями:
ппц граждане я думал ландшафт в максе делают, а оно вон как оказывается о_О
подскажите нубу, кто в этом разбирается, как создают ландшафт, как делать карту высот (в смысле как смоделировать какую-то конкретную местность, то что в фотошопе - это я знаю ), что такое детальная текстура?
ДмитрийТ
04.06.2009, 00:11
centrino, я сам пока что нуб но вот сайтик http://neoaxis-rus.com там пара статей вроде есть на эту тему, или посмотри/поспрашивай там на форуме.
осталось неясно: как лучше экспортировать ландшафт в движок, как текстуру или как геометрию, и как, и в том и в другом случае, добавлять на карту статичные объекты, которые, по сути, тоже являются частью ландшафта? и как в таком случае быть с моделями домов, ведь внутри дома тоже можно перемещаться, так что дом - не совсем ландшафт?
пробовал брюс, терраген, ворлдбилдер. лучше из этих трёх брюс. в максе+фотошоп можно так же запросто делать всё тоже самое, правда памяти это будет жрать больше. брюс умеет делать tessellation(в максе такого нет, там всё это дико тормозит), а плотность сетки указывается уже при экспорте. минус один - сетка получается регулярная в любом случае.
Цитата(centrino @ 04.06.2009, 14:34)
осталось неясно: как лучше экспортировать ландшафт в движок, как текстуру или как геометрию, и как, и в том и в другом случае, добавлять на карту статичные объекты, которые, по сути, тоже являются частью ландшафта? и как в таком случае быть с моделями домов, ведь внутри дома тоже можно перемещаться, так что дом - не совсем ландшафт?
лучше его вообще не экспортировать, а мухрыжить на месте в игровом редакторе.(мячты) с каких пор дома стали частью ландшафта?
напиши редактор, суть такова: вкидываеш, или рисуеш прям на месте 2 битмапы - 1-я карта высот, 2-я карта детализации, на выходе получаем не 15млн вершин(еслиб сетка была регулярная), а всего 700К например. совершенно неважно поддерживает tessellation двиг или нет, просто есть места на террайне которые совершенно незачем сильно детализировать, в тоже время есть места которые нуждаются в очень плотной сетке.
centrino
06.06.2009, 15:20
редактор-то написать можно, только вот я не представляю, что он должен редактировать
в принципе можно переделать так, чтобы вместо модели указывать движку на битмапы карты высот, карты детализации и текстуру, для этого только надо приделать диалог и программно устанавливать параметры, которые движок читает из вот такого файла:
terrain.cfg
# The main world texture (if you wish the terrain manager to create a material for you) WorldTexture=terrain_texture.bmp
# The detail texture (if you wish the terrain manager to create a material for you)
#number of times the detail texture will tile in a terrain tile DetailTile=3
# Heightmap source PageSource=Heightmap
# Heightmap-source specific settings Heightmap.image=terrain.bmp
# If you use RAW, fill in the below too # RAW-specific setting - size (horizontal/vertical) #Heightmap.raw.size=128 # RAW-specific setting - bytes per pixel (1 = 8bit, 2=16bit) #Heightmap.raw.bpp=1
# How large is a page of tiles (in vertices)? Must be (2^n)+1 PageSize=128
# How large is each tile? Must be (2^n)+1 and be smaller than PageSize TileSize=65
# The maximum error allowed when determining which LOD to use MaxPixelError=3
# The size of a terrain page, in world units PageWorldX=7500 PageWorldZ=7500 # Maximum height of the terrain MaxHeight=100
# Use vertex program to morph LODs, if available VertexProgramMorph=yes
# The proportional distance range at which the LOD morph starts to take effect # This is as a proportion of the distance between the current LODs effective range, # and the effective range of the next lower LOD LODMorphStart=0.2
# This following section is for if you want to provide your own terrain shading routine # Note that since you define your textures within the material this makes the # WorldTexture and DetailTexture settings redundant
# The name of the vertex program parameter you wish to bind the morph LOD factor to # this is 0 when there is no adjustment (highest) to 1 when the morph takes it completely # to the same position as the next lower LOD # USE THIS IF YOU USE HIGH-LEVEL VERTEX PROGRAMS WITH LOD MORPHING #MorphLODFactorParamName=morphFactor
# The index of the vertex program parameter you wish to bind the morph LOD factor to # this is 0 when there is no adjustment (highest) to 1 when the morph takes it completely # to the same position as the next lower LOD # USE THIS IF YOU USE ASSEMBLER VERTEX PROGRAMS WITH LOD MORPHING #MorphLODFactorParamIndex=4
# The name of the material you will define to shade the terrain #CustomMaterialName=TestTerrainMaterial
я так думаю, что имеется возможность сохранить полученный материал и геометрию
p.p.s. никак с масштабом не разберусь, если в максе выбрать метрическую систему, то в ogre какие-то бешеные цифры в попугаях получаются
centrino
06.06.2009, 18:05
а тут вообще подробно рассматривается, как добавлять объекты и перетаскивать их мышью в любое место ландшафта в общем мне жутко интересно, хотя грабить корованы вряд ли получится
Paged and animated grass support. Support for transparent textures. Open source C++ scene-loader class for easy project integration. Open source PHP-GTK based artifex-scene to ogre-dotscene converter. Mesh based decal cursor resembling the current brush in pattern, size and rotation. 180 degree brush flipping. Editable project templates. SQlite based storage system. Normalmapping and dynamic lighting support. Infinite custom object value pairs to edit game-content. 50 step Undosystem for all paint and terrain actions. Artpad support, tested with Wacom Graphire2 and Intous3 pads. Brushsystem with 10 different brushes, can be infinitely more. Brushrotation, random, snap to 11.25 steps and degreewise. Paintpressure is affected by the brightness of the brush you use. Colourpainting with several different tools: Paint, Erase, Darken, Brighten, Blur, Sharpen, Contrast, Noise and filters: GaussianBlur, Dilate, Edge,Erode,Repair,UnsharpMask,Sharpen,Noise,Clear. Terrain-shaping with 2 filters, and several different tools: Lower, Raise, Blur, Flatblur, Boil, Plane. Adding and editing of meshes, rapid placement with space+click for random rotation/placement. WYSIWYG texture adjusting, RGB, Saturation, Brightness, Contrast. Backblending of baked splatting textures to reduce texture tile effects. Texture-painting (splatting) with 9 different textures. Tested with terrain-sizes of 15000*15000 ogre units. Detailed documentation and help inside the terrain editor application. Model pack with trees, plants, buildings. And more...