- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
// bormand: Ну что, затестим шейдер в WebGL...
int iter = 0;
while (iter < 1000 && length(z) < 2.0) {
z = vec2(z.x * z.x - z.y * z.y, 2.0 * z.x * z.y) + c;
iter++;
}
// compileShader: 'while' : This type of loop is not allowed
// bormand: WTF?! В обычном OpenGL же работало, ну ок...
int iter = 0;
for (; iter < 1000; iter++) {
if (length(z) < 2.0)
break;
z = vec2(z.x * z.x - z.y * z.y, 2.0 * z.x * z.y) + c;
}
// compileShader: 'for' : Missing init declaration
// bormand: Да что за херня!?
for (iter = 0; iter < 1000; iter++) {
// compileShader: 'for' : Invalid init declaration
// bormand: Подавись, сука!
int iters = -1;
for (int iter = 0; iter < 1000; iter++) {
if (length(z) < 2.0) {
iters = iter;
break;
}
z = vec2(z.x * z.x - z.y * z.y, 2.0 * z.x * z.y) + c;
}
// compileShader: ok.
Динамик бранчинг требует. Для шрейдеров может не поддерживаться. Запроси капасити. Ну и версию шейдеров попробуй другую указать. Помни, что шрейдеры - не кресты и более ограничены. В том числе и драйвером и видяхой
Так что правильно сделали, что запретили. Для WebGL это страшенная дыра - можно удаленно вешать компы, подсунув ссылку с таким шейдером.
UPD: Там еще и число итераций в for'е ограничили до 65535.
В виндовом ФФ по дефолту отключено?
Просто на некоторых видюхах бубунтовская unity тоже отключает ускорение. И не зря... Когда я его включал на fx5200 там половина иконок тупо не рисовалась :)
Насчет остальных - пока х.з., не смотрел...
А, и к тому же, почему никто не обратил внимание на лишнее вычисление квадратного корня в строке length(z) < 2.0?
Да я в курсе. По-хорошему надо dot(z, z) < 4.0. Странно, что Тарас еще не злорадствует в этом треде.
командную строку? Строка подается на вход консолечке - cmd.exe и может
содержать разбодяженные команды, например: Простая замена
команд с помощью stringreplace не верное решение, т.к. на диске могут
быть файлы с такими же именами, например, start.exe. Как быть?
Вообще в винде в таких случаях заключают многословные аргументы в кавычки: cd "program files". Иначе хуй распарсишь.
Если поможете мне, подкинув более-менее универсальное решение, уплачу Вам 500 р ) Сил моих уже нет, давно с этим бьюсь. Нужно получить имя файла. Из примерно такой строки это будет "program files\progname[проверить расширение, есть ли исполняемые файлы *.exe, *.com]"
Кинь примеры строк и чего из них надо получить.
Если там произвольная консольная команда - разобрать будет очень и очень сложно...
А Start это и есть start.exe
Обычная ко-ко-консолечка как раз запускает эти файлы вместо консольных команд.
> корректно удалив все команды консолечки
В обычной консоли ещё, при использовании doskey, можно сделать алиас xxx=dir %*, запустить xxx c:\ && xxx d:\, и это, по-моему, будет эквивалентно dir "c:\" "&&" "xxx" "d:\".
Если надо учитывать подобные моменты, можно убиться (наверное).
>> doskey, можно сделать алиас xxx=dir %*, запустить xxx c:\ && xxx d:\, и это, по-моему, будет эквивалентно dir "c:\" "&&" "xxx" "d:\".
Какой кошмар(
Те. нужно тупо выхватить все, что между пробелами и искать, есть ли такой файл. Так что ли?
тебе надо учитывать переменные окружения (например, path)
разобрать всю командную строку согласно синтаксису твоего любимого интерпретатора (т.е. cmd.exe)
т.е. не забыв про возможности, например, циклов
исполнять все команды из разобранного списка честно и последовательно
при этом использовать пользовательские переменные, объявляющиеся в строке и т.д.
в общем, ждём
Можно посмотреть переменные среды %PATH% и %PATHEXT%, если для каждого пути из path и в текущем каталоге нет файла с каждым расширением из pathext, то файла нет, скорее всего это команда. Причём, если в команде-то можнт быть xxx, а может - xxx.exe или xxx.bat. Причём, файл xxx.jpg.bat можно запустить как xxx.jpg, а можно - как x.jpg.bat, но не как x.
Тут надо аккуратно все варианты разобрать и курить виндоманы. К тому же не факт, что в другой версии винды не будет маленького и гордого отличия.
> Те. нужно тупо выхватить все, что между пробелами и искать, есть ли такой файл. Так что ли?
Честно говоря, я задачу до конца не понял, поэтому могу отвечать не на те вопросы.
Надо учесть пробелы в кавычках, скобки и символы вида |, <, >, &&, ^, меняющие смысл написанного.
P.S. defecate-plusplus уже всё это написал.
Шейдеры по умолчанию говно? Или это все-таки про мой шейдер и мои кривые руки?
Да здравствует Софтрендер!
Хех, у меня когда-то была софтрендерная версия этой демки со множествами Жюлиа, вроде как под дос (или под винапи, не помню уже)... Только я ее куда-то проипал ;(
Вот вчера just for lulz решил повторить ее с новыми технологиями на GPU...
> Куча ограничений
Ну а что поделать. Без ограничений ты 960 вычислительных ядер не замутишь, там же каждый транзистор дорог. По крайней мере при текущем уровне технологий ;(
http://bormand.github.io/julia-webgl/
Что и следовало ожидать. webgl сырой, а у меня руки кривые :)
А чего-нибудь пишет об ошибке?
А в консоль браузера ниче интересного не высрало?
Просто сейчас погуглил, у ANGLE, через который хром и огнелис транслируют GLSL в HLSL для direct x есть проблема. Ему нравится анроллить большие циклы (а тут как раз большой цикл до 100), и он почему-то долго это делает. А часто этот анролл вообще падает.
Сможешь chrome://gpu/ помотреть?
А вот и Опера ;)
http://postimg.org/image/6dx2114xx/
- совсем уж старых интеловских интеграшках (скорее всего из-за слишком большого цикла, который на них не реализовать)
- ишаке любой версии, включая IE11 (скорее всего та же проблема, т.к. в IE11 другие демки типа вертящегося кубика идут)
- некоторых браузерах, где WebGL надо включать врукопашную (operaъ 12.х, хром под ведром, десктопный хром для видеокарт в блеклисте)
- на айпадах (он там есть, но собака на сене)
Т.е. WebGL можно потихоньку начинать использовать...
- у друга на mac'е запустилось
- у подруги на винде и старой интеловской интеграшке линковка шейдеров упала с "error X3511: unable to unroll loop, loop does not appear to terminate in a timely manner"
Хм. Теперь искрящиеся молнии.
Правда от видюхи может зависеть. Во многих Маках встроенная Intel, а у меня GTX670
Ну здесь еще шейдер не самый удачный, с огромным циклом. Как оказалось, далеко не всем видюхам такое по душе...
P.S. Всем огромное спасибо за тестирование!
7/ ишак 10 -
Sorry :(
http://bormand.github.io/julia-webgl/js/main.js:37
Can't link shader program:
Ну майкрософт как всегда в своем стиле. Ошибка без текста ошибки ;)
P.S. Кстати, а в 10 ишаке откуда WebGL? Can I Use говорит, что минимальный - 11.0.
http://caniuse.com/webgl
Он кстати шустрый стал. как хром
Символ: 13
Код ошибки: 0
Сообщение: Can't link shader program:
URL: http://bormand.github.io/julia-webgl/js/main.js
А getProgramInfoLog() походу вернул пустую строку, и что там за ошибка мы никогда не узнаем ;(
В Хроме 29 работает с дефолтными настройками (хотя предыдущие версии Хрома напрочь отказывались включать WebGL), в ФФ работает (после пинка webgl.force-enabled=true), а Опера 12 выдала:
Назвать это видеокартой язык не повернулся? Правильно.
bormand, это великолепно!
Firefox (вроде бы я принудительно отключил блеклист, не помню уже)
Работает.
Все работает.
ПРОЦ ЖИВ.
А брат?
Бага какая-то. Должен был установить линукс.
У них какая-то любовь к этой цифре. DirectX 11, DirectX 8.1
Фигассе майкрософт отжигает. Запустилось хотя бы в 11 ишаке?
http://myzuka.ru/Song/1776280/Audiomachine-Spartacus-No-Choir/Page4
Кстати, у меня не запустилось в 11м. Ошибка как у кегдана.
Хех, и эта ошибка "" ни на шаг не приближает нас к разгадке ;(
Есть предположение, что ему не нравится длинный цикл, рисующий фрактал.
На http://get.webgl.org у тебя кубик же крутится?
Крутится.
Да и хрен с ним, с ишаком. Я ж не игру на продажу ваяю ;)
Хм. А на девятой винде он опять станет DirectX 9? Знатные тролли.
Да, слона то я и не заметил :)
sort . nub
OpenGL :)
Вот зря M$ его закопал на версии 1.2, и пошел пилить свой велосипед. Лучше бы тоже поучаствовали в стандартизации OpenGL. И был бы он сейчас на всех устройствах, включая винду. А не на всех устройствах, кроме винды и х-коробки.
А то вот WebGL под виндой гоняется через жопу ANGLE - транслятор OpenGL ES в DX.
А по возможностям, если я не туплю, последние OpenGL и Direct3D совпадают чуть более чем полностью - тот же набор шейдеров (вершинные, тесселяционные, геометрические и фрагментные емнип), те же буферы, то же индексное рисование, те же текстуры...
Будем надеяться на то, что они все-таки закопают свой Direct3D, как когда-то сделали это с ускорением звука в DirectSound.
Да оно собственно никогда и не работало. Ну 1.2, которое там с древних времен не менялось, работой не считается. А настоящие OpenGL дрова на ту же нвидию качаются отдельно и где-то в жопе их сайта...
Или производители видюх не выпустили дров под 8.1?
http://stackoverflow.com/questions/19236021/wglmakecurrent-fails-on-x64
http://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/b3fbe482-eba4-451d-bbed-3bc00b7c8bb5/wglmakecurrent-in-windows-8-64-bit-always-returns-false?forum=windowssdk
Version: 332.21 WHQL
Release Date: 2014.1.7
Operating System: Windows 7 64-bit, Windows 8.1 64-bit, Windows 8 64-bit, Windows Vista 64-bit
Supports OpenGL 4.4 for GeForce 400-series and later GPUs.
Ну а про остальных производителей - х.з.
— Не могу установить Windows. Скачиваю, пытаюсь установить, а у меня OS/2 ставится. Повторяю — то же самое.
— А какой протокол у модема?
— V.42bis со сжатием и с коррекцией ошибок.
P.S. Кстати забавно, но демка пошла даже на андроидах (фаерфоксом, хромом или оперой, в штатном нету WebGL). А вот эппл - пидорасы. Сделали в iOS поддержку WebGL, и никому не дают ее юзать.
Шутканул...
> Сделали в iOS поддержку WebGL, и никому не дают ее юзать.
Собака на сене пилит айфон 6 с играми через бровсер
Вот и закопали сначала флеш, а потом и вебгл.
opera:config#UserPrefs|EnableHardwareAcceleration — вот тут тоже.
После перезапуска браузера (это единственная ситуация, когда его нужно перезапускать), идём на opera:gpu и смотрим, какой бекенд не поддерживается.
Увы, софтверного GL в Опере нет.
Читать далее>>> http://archive.is/Uqa4Y
ты уж определись
https://dl.dropboxusercontent.com/u/100032494/Blog/TarasB/1.png
https://dl.dropboxusercontent.com/u/100032494/Blog/TarasB/2.png
https://dl.dropboxusercontent.com/u/100032494/Blog/f3b.jpg
По дропбоксу врага можно вычислить и набить Ибала?
http://www.youtube.com/watch?feature=player_detailpage&v=uIbMfC 7h3XE&t=792
Ты читал библию?
- что это?
- Это детектор сарказма
- какая нужная вещь!
После этих слов детектор сарказма взрывается от перегрузки
Если бог и есть, думаешь ему не похуй на то, что ты там, мелкий человечек делаешь?
И кто же их сажать будет? Quod licet Iovi not licet bovi
интересно, можно ли нагнуть жппл в басманном суде на миллиард за разрыв контракта
Что лишь подтверждает, что все яблочники-пидорашки.
Когда вижу у парня айфон или ноут с обгрызанным яблоком, заочно причисляю его к пассивным геям.
Попрошу не обобщать!
XD
>> окажется сильным,
т.е. ты противопоставляешь к слабости?
На заметку: лупят и вытирают ноги не об слабых, а об трусливых. {CompilerIF оппонент не упорот} Если ты найдешь в себе мужество сказать перечисленное выше в лицо оппоненту, он даже зауважает тебя.{CompilerENDIF}
Как страшно жить в этом мире ;(
Если никто не согласился на пассивную роль, они просто разойдутся.
Железяка сама по себе годная, но больно уж огороженная.
MC769RU/A если быть точным.
> надо было бросить эту застарелую непотребщину обратно в лицо организаторам соцсоревнования!
Да ладно. Я ж не ради айпада участвовал. Это так, приятный бонус.
Поэтому они никогда не возьмутся писать движок под медленный яваскрипт и глючные браузеры ;) Настоящие посоны пишут движки на си и крестах.