forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Xors3D (http://forum.boolean.name/forumdisplay.php?f=126)
-   -   Xors3D (http://forum.boolean.name/showthread.php?t=6180)

MiXaeL 03.03.2014 14:08

Ответ: Xors3D
 
Цитата:

Сообщение от moka (Сообщение 275634)
Для таких целей Unity отлично подходит.
Или возьми three.js и будет тебе кубик за 15 минут, с шейдерами и тенями.

>> C++

moka 04.03.2014 05:48

Ответ: Xors3D
 
Цитата:

Сообщение от MiXaeL (Сообщение 275890)
>> C++

Тебе же "открыть и быстро глянуть", почему именно С++ тогда? Там нужно студию открывать, линкить всё подряд, компилить..
Религия? Или не С++ - это уже не "тру?".

Разработчику не важен язык, если он мыслит абстрактно как архитектор и технический дизайнер - ему важно решение с логической точки зрения, и при необходимости быстрого прототипа - разумнее выбирать именно то что для этого создано, и это не С++ точно.
Знание ряда языков и либ - очень расширяет мировоззрения для разраба (прям продаю ЛСД... ;) ).

MiXaeL 04.03.2014 12:47

Ответ: Xors3D
 
Цитата:

Сообщение от moka (Сообщение 276002)
Тебе же "открыть и быстро глянуть", почему именно С++ тогда? Там нужно студию открывать, линкить всё подряд, компилить..
Религия? Или не С++ - это уже не "тру?".

Разработчику не важен язык, если он мыслит абстрактно как архитектор и технический дизайнер - ему важно решение с логической точки зрения, и при необходимости быстрого прототипа - разумнее выбирать именно то что для этого создано, и это не С++ точно.
Знание ряда языков и либ - очень расширяет мировоззрения для разраба (прям продаю ЛСД... ;) ).

Думаю, тут спор больше о вкусах. Конечно, меня не обломает написать в js, но плюсы привычнее и удобнее. Опять-таки для того, чтобы нормально писать в js с автокомплитом, подсказками и т.п., нужно какую-нибудь IDE ставить.
Кстати, если говорить о быстрых прототипах, я бы скорее питон выбрал для этой цели.

Mr_F_ 04.03.2014 15:08

Ответ: Xors3D
 
Цитата:

Конечно, меня не обломает написать в js
зачем js, там нормально на с# писать, синтаксис по большей части такой же как с++ (только думать ещё меньше надо). для прототипов и быстрого накидывания самое то.
в качве IDE та же вижуал студия есть под шарп.

MiXaeL 04.03.2014 16:31

Ответ: Xors3D
 
Цитата:

Сообщение от Mr_F_ (Сообщение 276023)
зачем js, там нормально на с# писать, синтаксис по большей части такой же как с++ (только думать ещё меньше надо). для прототипов и быстрого накидывания самое то.
в качве IDE та же вижуал студия есть под шарп.

Я про это:
>> Или возьми three.js и будет тебе кубик за 15 минут, с шейдерами и тенями

Шарп не люблю и хватит уже меня агитировать на всякие эти ваши юнити :) Имею право хотеть простой движок на С++. Кстати, за неимением лучшего, на том же xors'e подобные демки пока делаю.

moka 06.03.2014 00:30

Ответ: Xors3D
 
Цитата:

Сообщение от MiXaeL (Сообщение 276017)
Думаю, тут спор больше о вкусах. Конечно, меня не обломает написать в js, но плюсы привычнее и удобнее. Опять-таки для того, чтобы нормально писать в js с автокомплитом, подсказками и т.п., нужно какую-нибудь IDE ставить.
Кстати, если говорить о быстрых прототипах, я бы скорее питон выбрал для этой цели.

Python для 3д прототипа, это шутка? Ты видимо ни питоном ни js не пользуешься?

Начнём с того что тебя не привлекает JS синтаксимос, а python ок? Но ты сторонник С++? Лол.

C# в Unity - также быстро и просто.

Ну покажи как та же демка с тенями будет на С++ выглядеть, и на том же python и если кодом писать на Unity (C#):
http://jsfiddle.net/Q4uqE/5/

Тебе IDE для авто-комплита подавай? Ну тут что сказать... "ОК". Когда пол мира уже на Sublime'ах сидят, ну естественно не для С++/C#, а тебе да, студию подавай.
Не способность разработчика самому писать код в блокноте - это не разработчик имхо, это "оператор студии".

HolyDel 06.03.2014 02:11

Ответ: Xors3D
 
Код:

Ну покажи как та же демка с тенями будет на С++ выглядеть, и на том же python и если кодом писать на Unity (C#):
ну это же не от языка зависит. от движка.
что на плюсах что на шарпе будет примерно такой же код (при таком же движке).

moka 06.03.2014 02:22

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

Речь не о языках, а о инструментах на разные языки/платформы.
Язык без всех этих плюшек и комьюнити - ничто.

HolyDel 06.03.2014 03:08

Ответ: Xors3D
 
ну на акселе было бы примерно тоже (на три строчки больше - на инклюд, на main, и на while(true) - для цикла рендеринга), еслиб были тени. ну или на том же хорсе.

ну а так всякие монстры типа огра то уже и не используются. инструмент должен быть как можно проще и понятнее.

moka 06.03.2014 03:34

Ответ: Xors3D
 
Цитата:

Сообщение от HolyDel (Сообщение 276167)
ну на акселе было бы примерно тоже (на три строчки больше - на инклюд, на main, и на while(true) - для цикла рендеринга), еслиб были тени. ну или на том же хорсе.

ну а так всякие монстры типа огра то уже и не используются. инструмент должен быть как можно проще и понятнее.

На ксорсе нету такого контроля как тут, и вообще не пахнет. Дебаггинг - вжопе, Win7 тоже.
А что-бы сделать такой прототип, или начать, что нужно проделать до этого?
В случае с three.js, лишь пройти по данной ссылке: http://jsfiddle.net/ и выбрать three.js слева.

Доступность - один клик. Дебаг, под рукой (Chrome Dev Tools), если нужен OpenGL Inspector - один клик, и плагин в броузере https://chrome.google.com/webstore/d...omeaghda?hl=en
В Firefox'е есть даже дебаг с брейкпойнтами в шейдере!! Можно редактировать шейдер на лету, а это при прототипировании с графикой просто мощь, которой кто обладает?

И всё это уже тут и всем доступно без инсталляции и настройки разного софта и туулз.

MiXaeL 07.03.2014 13:49

Ответ: Xors3D
 
вот бомбануло, так бомбануло.

moka 07.03.2014 23:00

Ответ: Xors3D
 
Цитата:

Сообщение от MiXaeL (Сообщение 276237)
вот бомбануло, так бомбануло.

Невежи знают как троллить.

Arton 25.07.2014 03:41

Ответ: Xors3D
 
1)
Кто-нибудь может мне объяснить, почему в Хорсе с маской не работает mip-map?
Если ставить с альфой всё отлично, но тогда начинаются глюки z-буфера, по этому маска, маска и только маска!!!
Использу dds, всё настроено как надо, Блиц отображает без проблем, хочешь мип-мап сглаживание - пожалуйста, не хочешь - отключу.
Задал принудительно через xTextureFilter, всё прекрасно работает кроме маски >_<

Почему?

Можно как-то настроить через шейдеры?

2)
В блице есть команда SetGfxDriver(), для Хорса аналога не нашёл, она там есть?

P. S. Забавно, стандартные тени не заработали с альфой.

Mr_F_ 25.07.2014 04:25

Ответ: Xors3D
 
делай маску в шейдере сам через clip или discard

Arton 25.07.2014 05:17

Ответ: Xors3D
 
Цитата:

Сообщение от Mr_F_ (Сообщение 284615)
делай маску в шейдере сам через clip или discard

Можно пожалуйста подробней?

Изучая урок по шейдерам для Хорса наткнулся вот на это:

"if (diffuse.a < 0.5f) discard; // реализация маски"

И попробовал вставить так (копипаста из урока):

Код:

float4x4 matrixWorldViewProj : MATRIX_WORLDVIEWPROJ; // матрица итоговая
float4x4 matrixWorld            : MATRIX_WORLD;            // матрица мировая

float3        lightDirection            : LIGHT0_DIRECTION;    // направление
float4        lightColor            : LIGHT0_COLOR;            // цвет

float4        entityColor            : COLOR_DIFFUSE;            // цвет объекта
texture  diffuseTexture      : TEXTURE_0;            // текстура

// описываем sampler
sampler        diffuseSampler = sampler_state

{
        Texture = <diffuseTexture>;        // привязываем текстуру

        // устанавливаем адресацию координат

        AddressU        = WRAP;
        AddressV        = WRAP;
        AddressW        = WRAP;

        // устанавливаем фильтрацию

        MinFilter        = ANISOTROPIC;
        MagFilter        = ANISOTROPIC;
        MipFilter        = ANISOTROPIC;

        // устанавливаем уровень фильтрации

        MaxAnisotropy        = 8;
};

// входная структура для вершинного шейдера

struct        VSInput
{
        float4 position  : POSITION;
        float3 normal          : NORMAL;
        float2 texCoords : TEXCOORD0;
};

// структура для результата вершинного шейдера

struct VSOutput
{
        float4 position  : POSITION;
        float3 normal          : TEXCOORD1;
        float2 texCoords : TEXCOORD0;
};

// вершинный шейдер

VSOutput VSMain(VSInput input)

{
        // объект для выходных данных

        VSOutput output;

        // трансформируем позицию вершины

        output.position  = mul (input.position, matrixWorldViewProj);

        // трансформируем и нормализуем нормаль

        output.normal          = normalize(mul(input.normal, matrixWorld));

        // переписываем текстурные координаты

        output.texCoords = input.texCoords;

        // возвращаем результат

        return output;
}

// пиксельный шейдер

float4 PSMain(VSOutput input) : COLOR0

{
        // делаем выборку из текстуры

        float4 diffuse  = tex2D(diffuseSampler, input.texCoords);

        if (diffuse.a < 0.5f) discard; // реализация маски

        // расчитываем освещенность точки

        float lit        = dot(input.normal, 8lightDirection);

        // возвращаем результирующий цвет пиксела

        return diffuse * entityColor * lit * lightColor;
}

technique Diffuse

{
        pass p0
        {

                PixelShader  = compile vs_3_0 VSMain();
                VertexShader = compile ps_3_0 PSMain();
        }
}



Я ещё тот нуб, не люблю читать всё от "корки док корки", стараюсь параллельно действовать самому. Короче отдельные элементы я вроде понимаю, но весь код шейдера вместе не осознаю.

"0.5f" это цвет? То есть если я понимаю - если в текстуре найден прозрачный пиксель(?) режем его?

"diffuse.a" - зачем точка?


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

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