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)

dsd 20.10.2011 18:59

Ответ: Странное.
 
Почему имя переменной far пугает компилятор? O_o

pozitiffcat 20.10.2011 19:08

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

Сообщение от dsd (Сообщение 206383)
виртуальные функции

освой обязательно, незаменимая вещь

dsd 20.10.2011 20:42

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

Маленькая демка. С небольшим уровнем детализации. от камеры ландшафт рисуется где-то на 1500 единиц
36 частиц 32х32. Можно критиковать, но имейте в виду в моем проекте не предполагается летать :)

Высокий уровень детализации 100 частиц 128х128 от камеры рисуется тыщь на десять.

FireOwl 20.10.2011 21:45

Ответ: Странное.
 
Неплохо. Стыки бы еще как-нибудь замазать.

P.S. Кулер на видеокарте зашумел. Работало шустро, никаких глюков.
Но через минуту вылетело с "Драйвер видеокарты бла-бла-бла и был восстановлен." У меня все сейчас так вылетает, начиная с Майнкрафта. Хотя и не так быстро.

h1dd3n 20.10.2011 21:58

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

Сообщение от FireOwl (Сообщение 206423)
Неплохо. Стыки бы еще как-нибудь замазать.

P.S. Кулер на видеокарте зашумел. Работало шустро, никаких глюков.
Но через минуту вылетело с "Драйвер видеокарты бла-бла-бла и был восстановлен." У меня все сейчас так вылетает, начиная с Майнкрафта. Хотя и не так быстро.


проверь на перегрев

FireOwl 20.10.2011 22:22

Ответ: Странное.
 
По теме: еще берега "дрожат" сильно.


Не по теме, за что извиняюсь. :-)
Перегрев - первое, что приходит в голову. И наверное, сейчас виноват именно он.
Но проблема существует независимо. Обычно все вылетает при температуре Gpu около 56 градусов. И эта температура ничем не отличается от той, при которой все работало уже пол-часа.
Замеряю Aida64 (бывший Everest). Может врет?

Upd:
Переношу оффтоп на законную почву сюда: http://forum.boolean.name/showthread...430#post206430

dsd 20.10.2011 23:53

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

Сообщение от FireOwl (Сообщение 206427)
По теме: еще берега "дрожат" сильно.

Это исправится с заменой фрактального генератора шума на перлин.

Ну а вылетело быстрей из=за того, что я отрубил vsynk, а на слабых видеокартах результат деформаций рисуется дольше, чем происходит их расчет и манипуляции с моделями. Соответственно видеокарта работала на все 100%.

Я заметил странную вещь.

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

impersonalis 21.10.2011 00:33

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

Сообщение от dsd (Сообщение 206383)
но вряд ли там довольно разные вещи в зависимости от направления происходят.

Возможно, вы недооцениваете матричные операторы: меняя всего-лишь коэффициенты можно добиться различных преобразований изображения, или изменений позиции\ориентации объектов, например.
Если вы считаете себя новичком в ЯП, то, возможно, не стоит начинать решать задачи, теоретическую подоплёку которых вы также собираетесь взять нахрапом.
Хотя, с другой стороны, такой подход (в условиях информационной изоляции), я думаю, мне, в своё время, не помешал. Но у вас: есть и-нет, и, наверняка, нет желания тратить время на велик - так что, наверное, стоит чуть подтянуть теорию. И дело не только в математике, и не столько в абстракциях Си++, сколько в несворачивании, очевидного
Код:

float val00=m1[k][i-step][j-step];
float val01=m1[k][i-step][j+step];
float val10=m1[k][i+step][j-step];
float val11=m1[k][i+step][j+step];

одновременно с ЙоптаЧтоИта-стайлом минимизации кода
Код:

for(int j=0;j<width;j++){for(int k=0;k<width;k++){m1[i][j<<(size-i-1)][k<<(size-i-1)]=kof*(1-2*(float)rand()/RAND_MAX);}}
(отличные имена переменных, форматирование на высоте, очевидные конструкции на битовом сдвиге; кстати, RAND_MAX лучше привести к типу float)
Возможно (весьма вероятно), что я необъективен и попросту ною, подавляя начинающих... Прошу не принимать близко к сердцу
код не читал @ сразу отвечал

dsd 21.10.2011 01:35

Ответ: Странное.
 
В бытность свою студентом стройфака я всегда оптимистично в течении семестра полагал, что: так этот, тот и вот тот предмет с нехилыми курсачами я куплю, и пребывая в полном спокойствии не появлялся ни на лекциях ни на практических занятиях. А затем, внезапно, при неожиданном наступлении зачетной недели выяснялось, что вот эти восемьсот рублей надо растянуть до начала экзаменов(и дело происходит не в общаге, и интернета нет, и писать поясниловку надо от руки, а картинки рисовать от руки по госту пару-тройку а1, а право выполнять все на компе можно было заслужить только истовым навязчивым ботанизмом). А планируемые покупки в бюджет не влазят и кредита никто не даст. Пробовали ли вы когда-нибудь делать курсовую работу не зная даже теории и имея в руках только !неправильный! пример сляпанный каким-то дебилом прошлых лет из нескольких работ? Пробовали ли вы сдать результат враждебно настроенному преподу постепенно осознающему, что вот это перед ним сидящее тело передумало дать ему пару-тройку тыщь? К четвертому курсу я развил навык до уровня сочинения теории из примера расчета :) А как я весело передумал 27 мая заказывать диплом в виду финансовых затруднений. И как я его подписал за три дня до конца срока, и как надо мной ржали преподы на защите, когда выяснилось, что он сделан так, что проходит по всем кафедрам. Эмм... О чем это я? У меня прокачан скилл нахрапа :D.

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

Возможно я недооцениваю матричные операторы(проще сказать, что я о них не имею представления) Но вполне очевидно, что они(операторы) могут каким-либо(весьма разнообразным) образом изменить существующие данные, но вот превратить нолики в 4 миллиона не повторяющихся набора данных со связанными краями, это вряд ли, я не верю в это.

ЗЫ: Походу никто не осознает что у меня внутри класса происходит на самом деле, ну и ладно.
Кстати как эти матричные операторы можно применить к этому:
Код:

void Surface_Switcherm(int flag){
    Handle temp[3*number];
    if(flag==0){ for(int i=0;i<3*number;i++){temp[i]=surfm[0][i];
    for(int k=0;k<3*number-1;k++) {surfm[k][i]=surfm[k+1][i];}
      surfm[3*number-1][i]=temp[i];
        int qvert=xCountVertices(temp[i]);
        for(int j=0;j<qvert;j++){xVertexCoords(temp[i],j,xVertexX(temp[i],j)+3*number*resolution,xVertexY(temp[i],j),xVertexZ(temp[i],j));}}
        for(int i=0;i<3*number;i++){Surface_Monolitizerm(3*number-1,i);}
        for(int i=number;i<2*number;i++){surfm[number-1][i]=surfm[2*number-1][i];int qvert=xCountVertices(surfm[number-1][i]);
        for(int j=0;j<qvert;j++){xVertexCoords(surfm[number-1][i],j,xVertexX(surfm[number-1][i],j)-number*resolution,xVertexY(surfm[number-1][i],j),xVertexZ(surfm[number-1][i],j));}}
        for(int i=number;i<2*number;i++){Surface_Monolitizerm(number-1,i);}
        }

    if(flag==1){ for(int i=0;i<3*number;i++){temp[i]=surfm[3*number-1][i];
    for(int k=3*number-1;k>0;k--) {surfm[k][i]=surfm[k-1][i];}
    surfm[0][i]=temp[i];
        int qvert=xCountVertices(temp[i]);
        for(int j=0;j<qvert;j++){xVertexCoords(temp[i],j,xVertexX(temp[i],j)-3*number*resolution,xVertexY(temp[i],j),xVertexZ(temp[i],j));}}
        for(int i=0;i<3*number;i++){Surface_Monolitizerm(0,i);}
        for(int i=number;i<2*number;i++){surfm[2*number][i]=surfm[number][i];int qvert=xCountVertices(surfm[2*number][i]);
        for(int j=0;j<qvert;j++){xVertexCoords(surfm[2*number][i],j,xVertexX(surfm[2*number][i],j)+number*resolution,xVertexY(surfm[2*number][i],j),xVertexZ(surfm[2*number][i],j));}}
        for(int i=number;i<2*number;i++){Surface_Monolitizerm(2*number,i);}
        }

    if(flag==2){ for(int i=0;i<3*number;i++){temp[i]=surfm[i][0];
    for(int k=0;k<3*number-1;k++) {surfm[i][k]=surfm[i][k+1];}
      surfm[i][3*number-1]=temp[i];
        int qvert=xCountVertices(temp[i]);
        for(int j=0;j<qvert;j++){xVertexCoords(temp[i],j,xVertexX(temp[i],j),xVertexY(temp[i],j),xVertexZ(temp[i],j)+3*number*resolution);}}
        for(int i=0;i<3*number;i++){Surface_Monolitizerm(i,3*number-1);}
        for(int i=number;i<2*number;i++){surfm[i][number-1]=surfm[i][2*number-1];int qvert=xCountVertices(surfm[i][number-1]);
        for(int j=0;j<qvert;j++){xVertexCoords(surfm[i][number-1],j,xVertexX(surfm[i][number-1],j),xVertexY(surfm[i][number-1],j),xVertexZ(surfm[i][number-1],j)-number*resolution);}}
        for(int i=number;i<2*number;i++){Surface_Monolitizerm(i,number-1);}
        }

    if(flag==3){ for(int i=0;i<3*number;i++){temp[i]=surfm[i][3*number-1];
    for(int k=3*number-1;k>0;k--) {surfm[i][k]=surfm[i][k-1];}
    surfm[i][0]=temp[i];
        int qvert=xCountVertices(temp[i]);
        for(int j=0;j<qvert;j++){xVertexCoords(temp[i],j,xVertexX(temp[i],j),xVertexY(temp[i],j),xVertexZ(temp[i],j)-3*number*resolution);}}
        for(int i=0;i<3*number;i++){Surface_Monolitizerm(i,0);}
        for(int i=number;i<2*number;i++){surfm[i][2*number]=surfm[i][number];int qvert=xCountVertices(surfm[i][2*number]);
        for(int j=0;j<qvert;j++){xVertexCoords(surfm[i][2*number],j,xVertexX(surfm[i][2*number],j),xVertexY(surfm[i][2*number],j),xVertexZ(surfm[i][2*number],j)+number*resolution);}}
        for(int i=number;i<2*number;i++){Surface_Monolitizerm(i,2*number);}
        }
}
void Data_Switcherm(int flag){

float **temp[3*number+2];
    if(flag==0){
        for(int i=0;i<3*number+2;i++){
            temp[i]=stripm[0][i];
                for(int k=0;k<3*number+1;k++) {stripm[k][i]=stripm[k+1][i];}
                stripm[3*number+1][i]=temp[i];
                Diamond_Squarem(3*number+1,i,sharpness,smothing);}}
    if(flag==1){
        for(int i=0;i<3*number+2;i++){
            temp[i]=stripm[3*number+1][i];
                for(int k=3*number+1;k>0;k--) {stripm[k][i]=stripm[k-1][i];}
                stripm[0][i]=temp[i];
                Diamond_Square2m(0,i,sharpness,smothing);}}
    if(flag==2){
        for(int i=0;i<3*number+2;i++){
            temp[i]=stripm[i][0];
                for(int k=0;k<3*number+1;k++) {stripm[i][k]=stripm[i][k+1];}
                stripm[i][3*number+1]=temp[i];
                Diamond_Squarem(i,3*number+1,sharpness,smothing);}}
    if(flag==3){
        for(int i=0;i<3*number+2;i++){
            temp[i]=stripm[i][3*number+1];
                for(int k=3*number+1;k>0;k--) {stripm[i][k]=stripm[i][k-1];}
                stripm[i][0]=temp[i];
                Diamond_Square3m(i,0,sharpness,smothing);}}

}


HolyDel 21.10.2011 02:37

Ответ: Странное.
 
макрос far определен где то в windows.h
не включай сей файл и можно обзывать переменную far. или #undef

impersonalis 21.10.2011 11:00

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

Пробовали ли вы когда-нибудь делать курсовую работу не зная даже теории и имея в руках только !неправильный! пример сляпанный каким-то дебилом прошлых лет из нескольких работ?
Да. И не раз (как, навреное, каждый студент).
Цитата:

Пробовали ли вы сдать результат враждебно настроенному преподу
Да. Ничего не покупал и на платные доп.курс не ходил, даже если оставались хвосты.
Цитата:

А как я весело передумал 27 мая заказывать диплом в виду финансовых затруднений.
С одной стороны - звучит круто. С другой: покупка диплома это ппц - раз, сводит на нет предшествующие хвальбы - два ( а вот как сдавали предмет на ОТЛ, зная гораздо менее меня, отправляющегося на пересдачу - видел и не раз: вероятно тоже потом считали, что ОТЛ - результат умения разбираться в сложных вещах на пустом месте).

mauNgerS 21.10.2011 13:11

Ответ: Странное.
 
:-DМоя учёба на мехфаке:-D

ПС impersonalis правильно говорит это учёба многих студентов:-D

dsd 21.10.2011 14:22

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

Без проблем подобный образ жизни вести может максимум процентов десять студентов.

moka 21.10.2011 14:26

Ответ: Странное.
 
Дык, система образования всегда отставала от современных разработок и стандартов в индустрии, для которой якобы студенты готовятся.
Те кто работают всё это время которое студент "учится", приобретают намного ценней опыт и знания + копейку.

dsd 21.10.2011 21:28

Ответ: Странное.
 
impersonalis, че O_o?!!!
Что это было? Причем тут правильно не правильно? Тем более правильно или нет человек может сказать только перед тем как склейть ласты.

Зы: Наверно приятно чувствовать себя телепатом, но это патология.


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

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