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

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

Вернуться   forum.boolean.name > Проекты > Проекты на Blitz3D

Проекты на Blitz3D Обсуждение будущих проектов, демок, набор команды и т.п.

Ответ
 
Опции темы
Старый 05.11.2011, 10:51   #46
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Ground Generator

Демка генератора с синхронизацией 60-62,без синхра-до 1000(почему?)..
железо(индекс:5.1):cpu b940@2GHz,3GB,GeForse GT 520m 1gb
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 05.11.2011, 11:21   #47
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Ground Generator

Синхра режет ФПС до 60
(Offline)
 
Ответить с цитированием
Старый 05.11.2011, 11:26   #48
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Ground Generator

да чет не особо,я заметил...бывало на синхре и до 70ти прыгает....ТОРМОЗОВ нет
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 05.11.2011, 12:08   #49
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Ground Generator

Косяк с Z-Buffer
Объясните, почему такие фэйлы?? Что нужно делать при построении сюрфейсов, чтоб не сбивался z буфер?
(Offline)
 
Ответить с цитированием
Старый 05.11.2011, 13:58   #50
Earlind
ПроЭктировщик
 
Регистрация: 11.05.2007
Сообщений: 126
Написано 15 полезных сообщений
(для 27 пользователей)
Ответ: Ground Generator

Так мне ж не надо динамической анимации ствола и прочей дряни... Я посмотрел как сделано в Boiling Point::Road to Hell, там стволы стоят ровно, качается чуть - чуть листва, и я сомневаюсь, что там какая-либо физ.модель, скорее всего просто небольшое синусоидальное отклонение))
Так помоему везде делают. Можно ещё сделать отклонение вершин по высоте сделать, в том числе и ствола. Чтобы верхушка сдвигалась сильнее, а низ был статичен. Не думаю, что алгоритм будет очень прожорливым.
(Offline)
 
Ответить с цитированием
Старый 05.11.2011, 14:06   #51
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Ground Generator

алгоритм не будет прожорлив вообще, но если двигать вершинки по высоте, получится хрень) ибо некоторые ветви висят почти у земли.
(Offline)
 
Ответить с цитированием
Старый 05.11.2011, 14:30   #52
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Ground Generator

Сообщение от Павел Посмотреть сообщение
Косяк с Z-Buffer
Объясните, почему такие фэйлы?? Что нужно делать при построении сюрфейсов, чтоб не сбивался z буфер?
С альфой Z-буфер НЕ работает. Уже много раз обсуждалось.

1. Простое решение: не юзать альфу.
2. Строить сюрфейс в зависимости от дальности (вместо z-буфера ты делаешь сортировку руками)
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Reizel (05.11.2011)
Старый 05.11.2011, 14:56   #53
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Ground Generator

Сообщение от ABTOMAT Посмотреть сообщение
1. Простое решение: не юзать альфу.
Огромное спасибо!!

ПС xLoadTexture("...",4)
(Offline)
 
Ответить с цитированием
Старый 05.11.2011, 15:08   #54
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Ground Generator

__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Эти 7 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
Android (05.11.2011), is.SarCasm (09.11.2011), LLI.T.A.L.K.E.R. (09.11.2011), Nikich (20.06.2012), Program23 (08.11.2011), Randomize (05.11.2011), Reizel (05.11.2011)
Старый 09.11.2011, 15:02   #55
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Ground Generator

Итак, новая демка. Добавлена трава, и немного анимации шейдерами)
ПС без скринов, ибо грузил этот архив полчаса, инета нет

Скачать
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dsd (09.11.2011)
Старый 09.11.2011, 19:10   #56
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Ground Generator

Трава супер, но деревья это пестец.
Да и лог в 250 мегабайт наверно жрет ресурсы на создание

А у меня с землей все окей

//  вектор в тридэ
class float3 {
    public:
    
float x;
    
float y;
    
float z;

    
float3(){
    
x=0.0f;
    
y=0.0f;
    
z=0.0f;
    }

    
float3(float afloat bfloat c){
    
x=a;
    
y=b;
    
z=c;
    }

    
void set(float afloat b,float c)
    {
      
x=a;
      
y=b;
      
z=c;
    }
};

float3 operator*(float3 afloat3 b){
float3 result;
result.x=a.y*b.z-b.y*a.z;
result.y=a.z*b.x-b.z*a.x;
result.z=a.x*b.y-b.x*a.y;
return 
result;
}

float3 operator*(float3 afloat b){
float3 result(a.x*b,a.y*b,a.z*b);
return 
result;
}

float3 operator*(float afloat3 b){
float3 result(b.x*a,b.y*a,b.z*a);
return 
result;
}

float3 operator+(float3 a,float3 b){
float3 result;
result.x=a.x+b.x;
result.y=a.y+b.y;
result.z=a.z+b.z;
return 
result;
}

float3 operator/(float3 afloat b){
float3 result;
result.x=a.x/b;
result.y=a.y/b;
result.z=a.z/b;
return 
result;
}


//*************
//*************
//-------------------------------------------
//класс триколелектион
class tree_col{
    public:
    
//***textures of leaves
Handle leaf_tex0;
Handle leaf_tex1;
Handle leaf_tex2;
Handle leaf_tex3;
    
//***textures of truncs
Handle bark_tex0;
Handle bark_tex1;
Handle bark_tex2;
Handle bark_tex3;
    
//***Handle of meshs for branch imitation
Handle trunc0;
Handle l1_branch0;
Handle l2_branch0;

//just for fan

double **data;
Handle temp;

//********************
tree_col(){
    
load_resources();
    
//mesh of trunc
    
float size=1;
    
trunc0=MakeMesh(4,size,size/5);
    
xEntityTexture(trunc0,bark_tex0);
    
xHideEntity(trunc0);
    
//texturifaing
    
l1_branch0=MakeMesh(4,32,4.3);
    
xEntityTexture(l1_branch0,bark_tex0);
    
xHideEntity(l1_branch0);
temp=xCreatePivot();

}

Handle Make_a_tree(float3 p,float3 r,float3 sint genHandle smeshfloat length){
   
//ignition
    
if(gen==0){
        
xFreeEntity(temp);
        
temp=xCreatePivot();
        
xPositionEntity(temp,p.x,p.y,p.z);}
    
Handle branch_mesh=smesh;
    
int generation=gen;
    
Handle mesh=xCopyEntity(branch_mesh,temp);
    
xScaleEntity(mesh,s.x,s.y,s.z);
    
xPositionEntity(mesh,p.x,p.y,p.z);
    if(
gen==0){  xPositionEntity(mesh,0,0,0);}
    
xAlignToVector(mesh,r.x,r.y,r.z,2,1);
    
xTFormPoint(0,0.9*length,0,mesh,temp);
    
float3 ch_pos(xTFormedX(),xTFormedY(),xTFormedZ());
    
int ch_num=xRand(1,3);
//  листва
if(gen==2){
        
Handle leaf=Make_a_Branch(length);
        
xEntityParent(leaf,temp);
        
xPositionEntity(leaf,ch_pos.x,ch_pos.y,ch_pos.z);
        
xScaleEntity(leaf,xRnd(30,35)*length/32,40*length/32,xRnd(30,35)*length/32);
        
xAlignToVector(leaf,r.x,r.y,r.z,2,1);}

    
//child generation
    
if(generation<2){

    
float seedh=xRnd(0,M_PI);
    
float seedv=xRnd(-0.1*M_PI,0.1*M_PI);

    for(
int i=0;i<ch_num;i++){
        
int genr=generation+1;
        
float xr=seedh+2*M_PI*i/ch_num+xRnd(-M_PI*0.1,M_PI*0.1);
        
//y-axis
        
float yr=seedv+0.15*M_PI+xRnd(-M_PI*0.3,M_PI*0.3);

        
float3 rt(cos(xr)*cos(yr),cos(yr),sin(xr)*cos(yr));
        
rt=rt+0.5*r;
        
//scale defenition
        
float3 scle(0.5*s.x,xRnd(0.6,0.8)*s.y,0.5*s.z);

        
Make_a_tree(ch_pos,rt,scle,genr,smesh,length);
        }
    }
    return 
temp;

}


Handle Make_a_Branch(float size){
        
Handle leaf=xCreateMesh();
        
Handle surf=xCreateSurface(leaf);
        
int v00=xAddVertex(surf,-1,0,0,0,0);
        
int v01=xAddVertex(surf,1,0,0,1,0);
        
int v10=xAddVertex(surf,-1,2,0,0,1);
        
int v11=xAddVertex(surf,1,2,0,1,1);
        
xAddTriangle(surf,v00,v01,v10);
        
xAddTriangle(surf,v01,v11,v10);
        
xAddTriangle(surf,v01,v00,v10);
        
xAddTriangle(surf,v11,v01,v10);
        
v00=xAddVertex(surf,0,0,-1,0,0);
        
v01=xAddVertex(surf,0,0,1,1,0);
        
v10=xAddVertex(surf,0,2,-1,0,1);
        
v11=xAddVertex(surf,0,2,1,1,1);
        
xAddTriangle(surf,v00,v01,v10);
        
xAddTriangle(surf,v01,v11,v10);
        
xAddTriangle(surf,v01,v00,v10);
        
xAddTriangle(surf,v11,v01,v10);
        
xEntityTexture(leaf,leaf_tex1);
        
xEntityFX(leaf,2);
        return 
leaf;
}

Handle MakeMesh(int segmentsfloat sizefloat radius){
    
gradient_noise(segments,1.33,3,rand());
       
Handle mesh=xCreateMesh();
       
Handle surf=xCreateSurface(mesh);
        
//создание плоскости
            
for(int i=0;i<=segments;i++){for(int j=0;j<=segments;j++){xAddVertex(surf,i,0,j,(double)i*3/segments,(double)j*3/segments);}}
            
int qvert=xCountVertices(surf);
    for(
int i=0;i<qvert-segments-1;i++){
        
int v0=i;
        
int v1=i+1;
        
int v2=i+segments+1;
        
int v3=v2+1;
            if(
v3<qvert && xMod(i,segments+1)!=segments){

                
xAddTriangle(surf,v2,v1,v3); xAddTriangle(surf,v2,v0,v1);
                 }}
    for(
int i=0;i<=segments;i++){for(int j=0;j<=segments;j++){
    
int index=i*(segments+1)+j;

    
//в 360 градусах 2*m_pi радиан

    
double crad=(radius+size*data[i%segments][j%segments]/32)*((segments-0.55*i)/segments);
    
double disp=3.5*sin(M_PI*i/(double)segments);

    
double sn=crad*sin(2*M_PI*j/(double)segments);
    
double cs=crad*cos(2*M_PI*j/(double)segments);

    
xVertexCoords(surf,index,sn,i*size/segments,cs);
    if(
i==segments){xVertexCoords(surf,index,0,i*size/segments,0);}}}
xUpdateN(mesh);
xCalculateFrustumVolume(mesh);
return 
mesh;
    }

void gradient_noise(int sizedouble sharpint diffint seed){

//создается массив для значений
srand(seed);
data=new double*[size+1];
for(
int i=0;i<=size;i++){data[i]= new double[size];}

        for(
int i=0;i<=size;i++){for(int j=0;j<=size;j++){data[i][j]=0;}}
        
//заполнение краев случайными числами (1;5)
        
int step=size>>2;
        for(
int i=0;i<=size;i=i+step){
        for(
int j=0;j<=size;j=j+step){
         
data[i][j]= xRnd(-5,5);}}


        
step=size>>1;
        while(
step>0){
            
//первая строка
            
for(int i=step;i<=size-step;i=i+2*step){
                for(
int j=step;j<=size-step;j=j+2*step){

                    
//вычисление необходимых индексов
                    
int x0=i-step;
                    if(
x0<0){x0=x0+size;}
                    
int x1=i+step;
                    if(
x1>=size){x1=x1-size;}
                    
int y0=j-step;
                    if(
y0<0){y0=y0+size;}
                    
int y1=j+step;
                    if(
y1>=size){y1=y1-size;}

                
double val00=data[x0][y0];
                
double val01=data[x0][y1];
                
double val10=data[x1][y0];
                
double val11=data[x1][y1];

                if(
data[i][j]==&& val00!=&& val01!=&& val10!=&& val11!=0){
                    
data[i][j]=0.25*(val00+val01+val10+val11)+0.5*step*xRnd(-sharp,sharp);
                    
data[x0][j]=0.5*(val00+val01)+0.5*step*xRnd(-sharp,sharp);
                    
data[x1][j]=0.5*(val10+val11)+0.5*step*xRnd(-sharp,sharp);
                    
data[i][y0]=0.5*(val00+val10)+0.5*step*xRnd(-sharp,sharp);
                    
data[i][y1]=0.5*(val01+val11)+0.5*step*xRnd(-sharp,sharp);}
                }
            }
        
step=step>>1;}


        
//приведение значений в массиве в интервал (0;1)
        
double max=0;
        
double min=0;
        for (
int i=0;i<=size;i++){
            for (
int j=0;j<=size;j++){
                if(
data[i][j]>=max){max=data [i][j];}
                if(
data[i][j]<=min){min=data [i][j];}}}

    
double length=max-min;
    for (
int i=0;i<=size;i++){
        for (
int j=0;j<=size;j++){
            
data[i][j]=pow(((data[i][j]-min)/length),1);}}

}

void load_resources(){
    
//textures of leaves
//leaf_tex0=xLoadTexture("tex/branch1.dds",2);
leaf_tex1=xLoadTexture("tex/branch3.dds",4);
//leaf_tex2=xLoadTexture("tex/branch4.dds",4);
//leaf_tex3=xLoadTexture("tex/sacura2.dds",4);
    //textures of bark
bark_tex0=xLoadTexture("tex/bark0.jpg");
//bark_tex1=xLoadTexture("tex/bark1.jpg");
//bark_tex2=xLoadTexture("tex/bark2.jpg");
//bark_tex3=xLoadTexture("tex/bark3.jpg");

}


double xRnd(double mindouble max){
    
double length=max-min;
    
double var =((double) rand() / (double)RAND_MAX);
    
double value=min+var*length;
return 
value;
}
};


//********************
//управляющий код
//********************


tree_col trees;


        for(
int i=0;i<100;i++){
        
float3 pos(i,0,i);
        
float3 rot(0,1,0);
        
float3 scale(1,1,1);
        
int generation=0;
        
Handle  tr=xCopyEntity(trees.Make_a_tree(pos,rot,scale,generation,trees.trunc0,1));}

/*нужно иметь папку tex
в которой 
bark_tex0=xLoadTexture("tex/bark0.jpg"); текстура коры
leaf_tex1=xLoadTexture("tex/branch3.dds",4);текстура веток.*/ 
(Offline)
 
Ответить с цитированием
Старый 09.11.2011, 19:24   #57
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Ground Generator

Ой а у вас цвет от земли отклеился. А ещё оче тормозит и долго грузится.
Миниатюры
Нажмите на изображение для увеличения
Название: CourseProject 2011-11-09 18-21-25-62.jpg
Просмотров: 639
Размер:	99.7 Кб
ID:	15409  
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mauNgerS (09.11.2011)
Старый 09.11.2011, 21:20   #58
Nerd
Чудо-кот
 
Аватар для Nerd
 
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений
(для 1,471 пользователей)
Ответ: Ground Generator

Сообщение от ABTOMAT Посмотреть сообщение
Ой а у вас цвет от земли отклеился.
Это так долго шла загрузка, что зима наступила.
__________________

(Offline)
 
Ответить с цитированием
Эти 6 пользователя(ей) сказали Спасибо Nerd за это полезное сообщение:
ABTOMAT (10.11.2011), mauNgerS (09.11.2011), Nikich (20.06.2012), pax (09.11.2011), Randomize (10.11.2011), Reizel (10.11.2011)
Старый 09.11.2011, 22:19   #59
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Ground Generator

Текстуре травы кламп бы доавбить. Деревья имеют белую окантовку.
Еле выщел из демки, комп на пару минут не подавал признаокв жизни, а потом выдал страшное сообщение, что не смог запустить системную команду по Ctrl + Alt + Del
И кстати да, супер лог файл.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 10.11.2011, 22:24   #60
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Ground Generator

Сделал траву. Скриншот (кликабельно)


ПС деревья остались дерьмом, но демка была запилена из за травы!!)
ПС ПС Грузится прога около 2-х минут!
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо Reizel за это полезное сообщение:
ABTOMAT (11.11.2011), moka (10.11.2011), Randomize (10.11.2011)
Ответ


Опции темы

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

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


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


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