forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Xors3D (http://forum.boolean.name/forumdisplay.php?f=126)
-   -   Странное. (http://forum.boolean.name/showthread.php?t=15405)

Mr_F_ 03.11.2011 17:47

Ответ: Странное.
 
прикольно, листва действительно лучше стволов и веток.
откуда кстати текстуру брал?
и какие нормали листве ставил?

dsd 03.11.2011 17:54

Ответ: Странное.
 
Я с cgtextures скачал маскнутое лохматое дерево со стволом, ствол оставил точно по центру. И типо мои кривые ветки втыкаются в нарисованные, все натянул на две плоскости крест накрест, меш с ними выравнивал по такому вектору:
float seedh=xRnd(0,M_PI);
float seedv=xRnd(-0.1*M_PI,0.1*M_PI);

child=new tree*[ch_num];
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.25*M_PI+xRnd(-M_PI*0.1,M_PI*0.1);

float3 rt(cos(xr)*cos(yr),cos(yr),sin(xr)*cos(yr));
rt=rt+0.5*r;
здесь r это вектор к которому приалижена ветка предыдущего левла.

Главное чтобы дерево в облачную погоду сфоткано было.

dsd 04.11.2011 00:27

Ответ: Странное.
 

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

moka 04.11.2011 00:33

Ответ: Странное.
 
Ну дык, дипов то вон сколько. Крона выводится одним дипом (синглсюрфейс?)?
Также альфатест юзается, или крона маска? Если маской - будет шустрее.
Сколько трисов всего на дерево?
Использование Лодов? Они обязательны в таких случаях.

Плюс, нада юзать инстансинг.

dsd 04.11.2011 00:38

Ответ: Странное.
 
Неа :) Я ж говорю танцы с бубном и камлание нужны, но должно быстро получиться, тут же прозрачности как таковой нет.
4-5 тышь на дерево плюс там лишней листвы в середке много, надо кол-во ветвей снизить на последнем уровне.

Randomize 04.11.2011 01:16

Ответ: Странное.
 
Цитата:

Сообщение от dsd (Сообщение 208225)
Ничего нового, но даже 100 этих уродцев не тормзят на встроенном видео так, что бы прям фатально, после некоторой оптимизации и пары жертвоприношений, в кадре, наверно, можно будет иметь штук 10-15 симпатишных и даже анимированных мохнатых деревяшек.

Wow! Выглядит круто! Много разных деревьев!

dsd 05.11.2011 00:49

Ответ: Странное.
 

Эксперименты с пайнт.нетом.

NitE 05.11.2011 01:26

Ответ: Странное.
 
Листва вообще на уровне, напоминает ролики скайрима:) , но блин, ствол не натуральный совсем.

dsd 05.11.2011 01:30

Ответ: Странное.
 
Ну да, меня пока просто прикололо автоматически фотошопить :) Прям рендеры интерьеров вспоминаются :) Хочу теперь весну и зеркалку...

moka 05.11.2011 01:55

Ответ: Странное.
 
Текстуре бы у ствола вертикальных узоров. Да и цвет ей нормальный. Бампу ещё, и теней на это дело. Будет весьма дельно имхо.

dsd 05.11.2011 02:01

Ответ: Странное.
 
Ну это только через много-много часов программирования. Но с тем как вообще сделать дерево я вроде разобрался :)

Вот с ландшафтом, масштаб дерева истинно эльфийский да и модуль для более симпотного и дешевого текстурирования надо сочинить, но вид уже довольно годный :)


Mr_F_ 05.11.2011 02:15

Ответ: Странное.
 
последний скрин смотрится хуже листвы с конца прошлой страницы имхо

Reizel 05.11.2011 10:17

Ответ: Странное.
 
Нет, он более реалистичен. Ствол шикарен. Продолжай))

dsd 05.11.2011 13:40

Ответ: Странное.
 
Ну так в нем и плейнов раз в двадцать меньше, а при перемещении вокруг него оно дает существенно более трехмерную иллюзию. И это не финальный вариант :)

dsd 08.11.2011 20:52

Ответ: Странное.
 
В общем ай гот а проблем.

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

Код:

Handle MakeMesh(int segments, float size, float radius){
      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*((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;
}

Что такого неправильного в выше приведенном коде, что загрузкой текстуры при количестве сегментов 32 или меньше оно падает?


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot