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

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

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

Xors3D Графический движок с поддержкой DirectX9

Ответ
 
Опции темы
Старый 25.12.2014, 23:31   #16
MOrtAl44444
Нуждающийся
 
Аватар для MOrtAl44444
 
Регистрация: 28.12.2010
Сообщений: 55
Написано одно полезное сообщение
Ответ: Наложение нескольких текстур на загружаемый Mesh

Короч в опу шейдеры...пока что
Поделил весь террайн на 36 регионов, в 3ds max сделал текстуры для каждого и получилось вот что:
FPS 81 - временно без оптимизации
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.png
Просмотров: 959
Размер:	1.43 Мб
ID:	21299  
(Offline)
 
Ответить с цитированием
Старый 25.12.2014, 23:42   #17
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Наложение нескольких текстур на загружаемый Mesh



Ты что то типа этого замутить пытался?

uniform sampler2D texture0;
uniform sampler2D texture1;
uniform sampler2D texture2;
uniform sampler2D texture3;

in vec3 fragmentn;
in vec2 fragmentuv;
in vec3 lightvec;


out vec4 color;





void main(void) {
float diff = dot(fragmentn,normalize(lightvec));

//получаю отклонение нормали от вертикали
float v_diff = dot(fragmentn, vec3 (0.0f,1.0f,0.0f));
//...
float disp=0.0f;

vec4 diffuse;
vec4 diffuse1;
vec4 diffuse2;

if(v_diff>0.95){diffuse = texture(texture0,fragmentuv);}

if(v_diff>0.91 && v_diff<=0.95){
			diffuse2 = texture(texture1,fragmentuv);
			diffuse1 = texture(texture0,fragmentuv);
			diffuse=mix(diffuse1,diffuse2,25*(0.95-v_diff));}

//если местность имеет небольшой уклон
if(v_diff>0.88 && v_diff<=0.91){diffuse = texture(texture1,fragmentuv);}		

if(v_diff>0.84 && v_diff<=0.88){
			diffuse2 = texture(texture2,fragmentuv);
			diffuse1 = texture(texture1,fragmentuv);	
			diffuse=mix(diffuse1,diffuse2,25*(0.88-v_diff));}

//если местность имеет большой уклон
if(v_diff>0.79 && v_diff<=0.84){diffuse = texture(texture2,fragmentuv);}		

if(v_diff>0.75 && v_diff<=0.79){
			diffuse2 = texture(texture3,fragmentuv);
			diffuse1 = texture(texture2,fragmentuv);	
			diffuse=mix(diffuse1,diffuse2,25*(0.79-v_diff));}

//если местность имеет пипец большой уклон
if(v_diff<=0.75){diffuse = texture(texture3,fragmentuv);}

color = diffuse*diff;
}
Миниатюры
Нажмите на изображение для увеличения
Название: planet.jpg
Просмотров: 1326
Размер:	159.2 Кб
ID:	21300  
(Offline)
 
Ответить с цитированием
Старый 25.12.2014, 23:49   #18
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений
(для 5,349 пользователей)
Ответ: Наложение нескольких текстур на загружаемый Mesh

Сообщение от MOrtAl44444 Посмотреть сообщение
сделал текстуры для каждого
Тогда лучше тайлами.
(Offline)
 
Ответить с цитированием
Старый 26.12.2014, 00:11   #19
MOrtAl44444
Нуждающийся
 
Аватар для MOrtAl44444
 
Регистрация: 28.12.2010
Сообщений: 55
Написано одно полезное сообщение
Ответ: Наложение нескольких текстур на загружаемый Mesh

Ты что то типа этого замутить пытался?
Да, что-то типа)
(Offline)
 
Ответить с цитированием
Старый 26.12.2014, 00:42   #20
Izunad
ПроЭктировщик
 
Аватар для Izunad
 
Регистрация: 02.06.2011
Адрес: Набережные Челны
Сообщений: 103
Написано 27 полезных сообщений
(для 91 пользователей)
Ответ: Наложение нескольких текстур на загружаемый Mesh

Сообщение от MOrtAl44444 Посмотреть сообщение
Короч в опу шейдеры
Зря ты так про шейдеры
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
tirarex (26.12.2014)
Старый 26.12.2014, 01:02   #21
MOrtAl44444
Нуждающийся
 
Аватар для MOrtAl44444
 
Регистрация: 28.12.2010
Сообщений: 55
Написано одно полезное сообщение
Ответ: Наложение нескольких текстур на загружаемый Mesh

Сообщение от Izunad Посмотреть сообщение
Зря ты так про шейдеры
я ведь написал "пока что"
Следующая по плану вода - она с шейдером )
(Offline)
 
Ответить с цитированием
Старый 30.12.2014, 14:40   #22
MOrtAl44444
Нуждающийся
 
Аватар для MOrtAl44444
 
Регистрация: 28.12.2010
Сообщений: 55
Написано одно полезное сообщение
Ответ: Наложение нескольких текстур на загружаемый Mesh

Мож кто знает более совершенную формулу расположения травы( и не только травы) по вертексам Меша ?

У меня так:
Function LoadGrass()
grass_terr xLoadMesh("grass.3ds")  
xEntityFX grass_terr16 Or 1
xScaleEntity grass_terr
500400500

surf_terr1 
xGetSurface(terr10)
For 
j=-10 To 10 Step 1
    
For i=-10 To 10 Step 1
    
    grass_brush_rnd 
Rnd(0,1)
    If 
grass_brush_rnd 
           xEntityColor grass_terr
9912939
    
Else
           
xEntityColor grass_terr12318038
    
EndIf    

grasst1.grass_terr1 = New grass_terr1    
      grasst1
\grass_t1 xCopyEntity(grass_terr)
        .
xx1
      grasst1
\xx xVertexX(surf_terr1,Rnd(1,1682))*terr_x+xMeshWidth(terr1)
        .
yy1
        
.yy2
      grasst1
\yy xVertexY(surf_terr1,Rnd(1,1682))*terr_y+xMeshHeight(terr1)
        .
zz1
        
.zz2
      grasst1
\zz xVertexZ(surf_terr1,Rnd(1,1682))*terr_z+xMeshDepth(terr1)   
      
      If 
grasst1\xx > -5000 Goto xx1
      
If grasst1\yy 35000 Goto yy1 
      
If grasst1\yy 22000 Goto yy2
      
If grasst1\zz 120000 Goto zz1
      
If grasst1\zz Goto zz2

      xPositionEntity grasst1
\grass_t1grasst1\xxgrasst1\yygrasst1\zz
    Next
Next
End 
Function 
,где terr_x = 200, terr_y = 170, terr_z = 200 - scale значения меша(terr1) ( во-сколько раз увеличен )
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.png
Просмотров: 1075
Размер:	1.23 Мб
ID:	21307  Нажмите на изображение для увеличения
Название: Безымянный1.png
Просмотров: 926
Размер:	712.5 Кб
ID:	21308  
(Offline)
 
Ответить с цитированием
Старый 30.12.2014, 15:18   #23
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Наложение нескольких текстур на загружаемый Mesh

может лучше не по мешу а просто по карте высот? генеришь рандомную позицию в прямоугольнике, находишь её высоту и ставишь.

алсо пучки травы лучше по максимуму склеивать в единый меш, а то проц подавится.
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
St_AnGer (30.12.2014)
Старый 30.12.2014, 15:24   #24
MOrtAl44444
Нуждающийся
 
Аватар для MOrtAl44444
 
Регистрация: 28.12.2010
Сообщений: 55
Написано одно полезное сообщение
Ответ: Наложение нескольких текстур на загружаемый Mesh

Сообщение от Mr_F_ Посмотреть сообщение
может лучше не по мешу а просто по карте высот? генеришь рандомную позицию в прямоугольнике, находишь её высоту и ставишь.

алсо пучки травы лучше по максимуму склеивать в единый меш, а то проц подавится.
Хм, ща попробую....и не откажусь еще от идей))
(Offline)
 
Ответить с цитированием
Старый 07.01.2015, 00:08   #25
MOrtAl44444
Нуждающийся
 
Аватар для MOrtAl44444
 
Регистрация: 28.12.2010
Сообщений: 55
Написано одно полезное сообщение
Ответ: Наложение нескольких текстур на загружаемый Mesh

Протестируйте на FPS у себя пожалуйста )
В файле Settings.ini можно менять настройки.

1) Показатель FPS при ваших максимальных настройках
2) FPS при оптимальной настройке для вашего железа

Жду ваших советов по оптимизации...что следует исправить или добавить...баги

P.S. над гравитацией пока что особо не парился
http://dropmefiles.com/fHbSs
(Offline)
 
Ответить с цитированием
Старый 07.01.2015, 00:33   #26
tirarex
Бывалый
 
Аватар для tirarex
 
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений
(для 866 пользователей)
Ответ: Наложение нескольких текстур на загружаемый Mesh

Грузится долго , при стандартных настройках фпс 65-140.
Накрутил на максимум , 8-15 но трава прикольная.
Как я понял ты просто прячешь растения дальше небольшого радиуса ?

Вообще в примерах ксорса есть пример инстансинга , так же траву надо объединять в 1 меш.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
MOrtAl44444 (07.01.2015)
Старый 07.01.2015, 00:35   #27
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений
(для 5,349 пользователей)
Ответ: Наложение нескольких текстур на загружаемый Mesh

Сообщение от MOrtAl44444 Посмотреть сообщение
Протестируйте на FPS у себя пожалуйста )
В файле Settings.ini можно менять настройки.

1) Показатель FPS при ваших максимальных настройках
2) FPS при оптимальной настройке для вашего железа

Жду ваших советов по оптимизации...что следует исправить или добавить...баги

P.S. над гравитацией пока что особо не парился
http://dropmefiles.com/fHbSs
1) ~15
2) Оптимальные? Это сколько? Для меня оптимальный ФПС 60 - 75 (частота моего монитора).
Поставил настройки: 2, 1, 3000, и фпс стал ~60, я думал нашёл оптимальное значение, но пока заходил в глубь карты фпс падал, 48, 40, 35. В одну сторону повернёшься — 50, в другую 30, очень нестабильно.
При минимуме (по умолчанию), фпс <300, и камера стала быстрой.

CPU — AMD FX 6100 3.30GHz 6 core
GPU — Palit GF 450 GTS 1Gb
RAM — 4Gb
OS — Windows 7 64 SP1

P. S. Используй маску вместо альфы, трава с деревьями сливается. У хорса проблемы с мип-мапом в режиме маски (альфы?), по этому советую dds с настроенным лодом.
P. P. S. Ты юзаешь шейдер и текстуры грузятся им? Юзай dds, хз как там можно настроить мип-мап, проще текстуру схоронить.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
MOrtAl44444 (07.01.2015)
Старый 07.01.2015, 00:44   #28
MOrtAl44444
Нуждающийся
 
Аватар для MOrtAl44444
 
Регистрация: 28.12.2010
Сообщений: 55
Написано одно полезное сообщение
Ответ: Наложение нескольких текстур на загружаемый Mesh

Сообщение от tirarex Посмотреть сообщение
Как я понял ты просто прячешь растения дальше небольшого радиуса ?

Вообще в примерах ксорса есть пример инстансинга , так же траву надо объединять в 1 меш.
Да прячу
В 1 меш? а чтобы не нужные элементы меша скрывать - это нужно по чайлдам пробегать потом?
(Offline)
 
Ответить с цитированием
Старый 07.01.2015, 00:51   #29
tirarex
Бывалый
 
Аватар для tirarex
 
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений
(для 866 пользователей)
Ответ: Наложение нескольких текстур на загружаемый Mesh

Сообщение от MOrtAl44444 Посмотреть сообщение
Да прячу
В 1 меш? а чтобы не нужные элементы меша скрывать - это нужно по чайлдам пробегать потом?
В общем , лучшее решение - как в Minecraft.
Там все чанками , допустим 5х5 метров.
Погугли BlitzGrass , там уже все за тебя сделали , и достаточно качественно.
https://www.dropbox.com/s/eqye7v9jda...52.09.png?dl=0
(Offline)
 
Ответить с цитированием
Старый 08.01.2015, 18:57   #30
MOrtAl44444
Нуждающийся
 
Аватар для MOrtAl44444
 
Регистрация: 28.12.2010
Сообщений: 55
Написано одно полезное сообщение
Ответ: Наложение нескольких текстур на загружаемый Mesh

Добавил облака
Следующее создание норм текстуры для террайна

ну и елки поменять нужно
Миниатюры
Нажмите на изображение для увеличения
Название: test.png
Просмотров: 1157
Размер:	1.59 Мб
ID:	21325  
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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