Best viewed with LeechCraft on Microsoft Linux. Войти !bnw Сегодня Клубы
struct Material
{
    float ambient[3];
    float diffuse[3];
    float specular[3];
    float transmittance[3];
    float emission[3];
    float shininess;
    float ior;

    void init_arr(float dst_arr[], float src_arr[]) {
        dst_arr[0] = src_arr[0];
        dst_arr[1] = src_arr[1];
        dst_arr[2] = src_arr[2];
    }

    Material(){}

    Material(float amb[], float diff[], float spec[], float trans[], float emis[],
                 float sh, float _ior):shininess(sh), ior(_ior) {
       init_arr(ambient, amb);
       init_arr(diffuse, diff);
       init_arr(specular, spec);
       init_arr(emission, emis);
       init_arr(transmittance, trans);
    }
};
#8GKLDC / @ninesigns / 3883 дня назад

Ппц ты говнокодер.
#8GKLDC/QIU / @0xd34df00d / 3883 дня назад
@0xd34df00d сам в ахуе, лучше не придумал (короче)
#8GKLDC/Z9Z / @ninesigns --> #8GKLDC/QIU / 3883 дня назад
@4da Перекатился в поинт, там комментировать удобнее.
#8GKLDC/SS7 / @0xd34df00d --> #8GKLDC/Z9Z / 3883 дня назад
ппц мяу говнокодеры писали
#8GKLDC/314 / @pook / 3883 дня назад
@pook если открыть, то норм, а так да, ацсос
#8GKLDC/VO0 / @ninesigns --> #8GKLDC/314 / 3883 дня назад
@0xd34df00d хули твои личкрафты против net neutrality
#8GKLDC/0FF / @238328 --> #8GKLDC/SS7 / 3883 дня назад
@pook хуёдеры // го пофиксим после физики?
#8GKLDC/OGU / @238328 --> #8GKLDC/314 / 3883 дня назад
@238328 пофиксил бы тебя после физики ивпочь ;}
#8GKLDC/NYG / @pook --> #8GKLDC/OGU / 3883 дня назад
@pook лан [;
#8GKLDC/LSG / @238328 --> #8GKLDC/NYG / 3883 дня назад
а если как-то так - http://pastie.org/9150608 ?
#8GKLDC/5QM / @ntsm / 3883 дня назад
@ntsm да можно и так. хотя вряд ли memcpy будет быстрее трех пересылок.
#8GKLDC/XGO / @ninesigns --> #8GKLDC/5QM / 3883 дня назад
@4da Ну у меня основной посыл в том, что есть готовые функции для копирования массивов. Или с memcpy, по-старинке, или std::copy.
#8GKLDC/N81 / @ntsm --> #8GKLDC/XGO / 3883 дня назад
@ntsm std::copy требует итератор, значит мне нужен будет initializer list, который надо будет конструировать руками (для каждого из пяти массивов)
#8GKLDC/SRZ / @ninesigns --> #8GKLDC/N81 / 3883 дня назад
@4da Нет. float* — тоже итератор. Тогда парой твоих итераторов будет ambient, ambient + array_size.
#8GKLDC/10Q / @0xd34df00d --> #8GKLDC/SRZ / 3883 дня назад
@ntsm Или std::vector от пары итераторов.
#8GKLDC/6Z5 / @0xd34df00d --> #8GKLDC/N81 / 3883 дня назад
@4da Наверняка будет медленнее из-за кучи ветвлений, связанных с оптимизациями для больших объемов данных, проверок выравнивания и прочего говна.
#8GKLDC/PT0 / @0xd34df00d --> #8GKLDC/XGO / 3883 дня назад
@0xd34df00d прогрессивно
#8GKLDC/JSC / @ninesigns --> #8GKLDC/10Q / 3883 дня назад
йобана стидоба. чому не зробити спеціальну структуру RGB? а потім використовувати звичайний (дефолтний) оператор копіювання?
#8GKLDC/JT6 / @hate-engine / 3883 дня назад
@hate-engine и держать уже в этой структурке массив%
#8GKLDC/72A / @ninesigns --> #8GKLDC/JT6 / 3883 дня назад
@4da що? struct Material { RGB ambient, diffuse, specular, transmittance, emission; ... };
#8GKLDC/QXN / @hate-engine --> #8GKLDC/72A / 3883 дня назад
@hate-engine то есть ты мне предлагаешь еще и с выравниваеим элементов этой сткрутуры ебаться?
#8GKLDC/T1O / @ninesigns --> #8GKLDC/QXN / 3883 дня назад
@4da внутри rgb шо?
#8GKLDC/LOD / @ninesigns --> #8GKLDC/T1O / 3883 дня назад
@4da на /T10 можешь пока не отвечать
#8GKLDC/CRO / @ninesigns --> #8GKLDC/T1O / 3883 дня назад
@4da r g b звісно
#8GKLDC/BOT / @hate-engine --> #8GKLDC/LOD / 3883 дня назад
@hate-engine typedef struct {float r, float g, float b} RGB; ?
#8GKLDC/S82 / @ninesigns --> #8GKLDC/BOT / 3883 дня назад
@4da так
#8GKLDC/YOB / @hate-engine --> #8GKLDC/S82 / 3883 дня назад
#8GKLDC/PVZ / @ninesigns --> #8GKLDC/YOB / 3883 дня назад
@4da яке вирівнювання? навіщо? алсо http://ideone.com/xzp4k4
#8GKLDC/VYL / @hate-engine --> #8GKLDC/PVZ / 3883 дня назад
@hate-engine у меня это говно (vec3) в шейдера напрямую уходит, а у меня там все tightly packed, а на amd64 каждый float будет выравнен по 8байтовой границе
#8GKLDC/CN1 / @ninesigns --> #8GKLDC/VYL / 3883 дня назад
@4da А чому нет?
#8GKLDC/B1K / @anonymous --> #8GKLDC/72A / 3883 дня назад
@anonymous да это норм
#8GKLDC/N74 / @ninesigns --> #8GKLDC/B1K / 3883 дня назад
@4da attribute packed алсо це дурна справа --- разривати бінарні дані на окремі інстанси структур/класів зроби краще щось типу Palette, куди інкапсулюй усі кольори та функції по копіюванню до GPU
#8GKLDC/BR1 / @hate-engine --> #8GKLDC/CN1 / 3883 дня назад
@hate-engine лан, если все делать сразу правильно, то хуй доделаешь.
#8GKLDC/1KM / @ninesigns --> #8GKLDC/BR1 / 3883 дня назад
@4da и это на сам деле будет заебно сделать сериализатор данных в gpuшный формат
#8GKLDC/RLZ / @ninesigns --> #8GKLDC/1KM / 3883 дня назад
Паскаль какой-то.
#8GKLDC/F0V / @je / 3882 дня назад
@4da > неявно полагается на архитектурноспецифические особенности выравнивания > не записывает их не то что в `alignas`/`#pragma pack`, а даже и в коменте обоссал тебя за грубое нарушение Дзена
#8GKLDC/L0J / @ulidtko --> #8GKLDC/CN1 / 3882 дня назад
@ulidtko прикол в том что для этого говна pack нужно указывать typedef struct {float r, float g, float b;} RGB; а для этого - нет: typedef struct {float rgb[3];} RGB; нахуй мне лишнее непортабельное говно?
#8GKLDC/UUN / @ninesigns --> #8GKLDC/L0J / 3882 дня назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.