[/b/] [/d/] [/tu/] [/a/] [/34/] [/ph/] [/wa/] [/cg/] [/t/]

[Burichan] [Futaba] [Gurochan] [Photon] - [Home] [Manage] [Archive]

[Return]
Posting mode: Reply
Leave these fields empty (spam trap):
Name
Link
Subject
Comment
File
Verification
Password (for post and file deletion)
  • Supported file types are: GIF, JPG, PDF, PNG
  • Maximum file size allowed is 20480 KB.
  • Images greater than 200x200 pixels will be thumbnailed.

File: 1278326165194.jpg -(125169 B, 848x1099) Thumbnail displayed, click image for full size.
125169 No.35070  

я начинаю работу над системой компьютерного зрения. этот тред будет напоминать мне, что нужно работать, а не хуи пинать.

>> No.35073  
File: 1278326363793.gif -(3623 B, 226x222) Thumbnail displayed, click image for full size.
3623

>>35070
в качестве стартовой площадки буду использовать эту библиотеку http://en.wikipedia.org/wiki/OpenCV , вероятно.

>> No.35083  

в хакере статья была

>> No.35118  
File: 1278412664586.jpg -(75171 B, 810x324) Thumbnail displayed, click image for full size.
75171

>>35070
нашел себе две камеры. в линупсах должны работать. похоже что весь необходимый функционал есть opencv. все остальные библиотеки, которые я просматривал, либо загнулись, либо для медицины.

>> No.35119  

>>35118
Не поделишься своими идеями?

>> No.35120  
File: 1278414390550.jpg -(532501 B, 1122x1600) Thumbnail displayed, click image for full size.
532501

>>35119
для начала мне необходимо заставить работать простую систему стереоскопического зрения, которая будет строить каркасы по форме материальных объектов. судя по интернетам- это реализуемо.
далее нужно написать физический движек(или использовать чужой), который будет переносить все эти объекты в виртуальную реальность. далее заставить всё это работать.
далее написать программу, которая будет решать простые физические задачи методом динамического программирования и обратной кинематекой. тогда я получу машину с интеллектом зверька. потом мне понадобится сделать манипуляторы, написать для них модуль. далее будем смотреть в сторону распознования текста и распределённых сетевых модулей для просчёта всех этих задач.

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

>> No.35121  

>>35120

>движок

что-то я взволновался.

>> No.35122  

http://www.membrana.ru/articles/technic/2010/05/27/174400.html
Хочу такое в видеоиграх.

>> No.35124  

>>35120

> простую систему стереоскопического зрения

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

>> No.35125  
File: 1278417107389.jpg -(445902 B, 495x700) Thumbnail displayed, click image for full size.
445902

>>35124
братюнь, у меня тут целый фреймворк для этого дела есть.

>> No.35126  

>>35120

>строить каркасы по форме материальных объектов

Вынужден тебя расстроить, меш невозможно построить имея только изображение объекта. В лучшем случае ты сможешь построить какую-то апроксимацию типа баундинг бокса. Если тебе нужен такой функционал, тебе помимо камер понадобиться прокаченный лазерный дальномер.

>переносить все эти объекты в виртуальную реальность

При чем тут виртальная реальность? Ты, наверное хотел сказать, что он будет моделировать какие-то взаимодействия перед тем, как что-то делать.

>тогда я получу машину с интеллектом зверька

не получишь. Ты получишь импортер в игровое пространство + какой-то решатель задачек (не понятно вообще для чего)

Мне интересно, сколько времени на все это ты планируешь потратить? И каким опытом/навыками уже располагаешь? Ибо выглядит это все как мечтательный проект школьника, который никогда подобным не занимался и смутно представляет, насколько сложно писать такие системы. (не в обиду будет сказано)

>> No.35127  
File: 1278418523785.jpg -(358876 B, 800x1091) Thumbnail displayed, click image for full size.
358876

>>35126
ок.

>> No.35128  

>>35126

> лазерный дальномер

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

>> No.35129  

>>35126

>не понятно

и блять, ну ты понимаешь короче.

>> No.35130  
File: 1278418745997.jpg -(15513 B, 402x302) Thumbnail displayed, click image for full size.
15513

>>35128
он просто влез что-то ляпнуть, похоже.
у меня тут целый фреймворк, так что со зрением мы как-нибудь без дальномера обойдёмся.
спать уже хочется.

>> No.35162  
File: 1278461667200.jpg -(104208 B, 1600x1200) Thumbnail displayed, click image for full size.
104208

итак, сейчас базовая проблема- решатель задачек, который сможет выдавать набор действий, которые приводят виртуальный мир(построенный на основе реального) в необходимое состояние.
>>35126
и, нет, это не будет сразу же интеллектом. это будет базовым модулем предсказания. далее потребуется распознование объектов, манипуляция памятью, абстракции, классификация объектов, и т.д.
алсоу, я хочу извиниться за некоторую грубость с моей стороны, к концу дня становлюсь раздражительным.

в качестве физического движка вот не знаю что выбрать. мне бы physics пригодился, но ему нужна видеокарта навороченная, а это- зависимость от железа.

кто-нибудь помнит, как называлась игра про двух сумоистов из кубиков, инди-поделие? тотикомы штоле. как-то так.

>> No.35163  

>>35162
сумотори!

>> No.35164  

>>35162

> решатель задачек, который сможет выдавать набор действий, которые приводят виртуальный мир(построенный на основе реального) в необходимое состояние

Можно по подробней о том, что ты хочешь получить?

>> No.35166  
File: 1278462496058.jpg -(194918 B, 800x812) Thumbnail displayed, click image for full size.
194918

>>35164
для начала- поиск пути с обходом препятствий. далее- перемещение объектов. далее- решение простых физических задачек, навроде дёрганья за рычаг(но здесь уже в дело вступит запоминание паттернов и, в некотром роде, нейросеть) или складывания кубиков в кучу, для преодоления препятствия. с проходом этих тестов можно говорить об интеллекте обезьяны.

>> No.35167  

>>35166

> поиск пути с обходом препятствий

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

>> No.35168  
File: 1278463295408.jpg -(619743 B, 2048x1536) Thumbnail displayed, click image for full size.
619743

>>35167
поглядим.

>> No.35172  
File: 1278479747189.png -(2202673 B, 1280x1024) Thumbnail displayed, click image for full size.
2202673

камеры завелись и выдают вполне приличное качество картинки. сейчас их нужно будет зафиксировать и подкрутить.

>> No.35173  
File: 1278483606431.jpg -(91024 B, 321x480) Thumbnail displayed, click image for full size.
91024

>>35172
marvelous! временно камеры зафиксировал, потом их крепления наверное сверлить придётся, все библиотеки подключил, sample opencv project работает.

>> No.35174  

>>35162
Вынужден тебя обрадовать: для PhysX НЕ ОБЯЗАТЕЛЬНА видеокарта, хотя ее наличие может ускорить твою обработку. Впрочем под линукс ускорения в ближайшие несколько лет тебе не видать. Только честно говоря, плохо себе представляю, что ты там симулировать собираешься. Ты не забывай, что физика в подобных движках не слишком точная. Плюс ко всему тебе прийдется вводить очень много настроек для объекта (вроде массы и коэффициента трения), которые на глаз узнать невозможно.

Олсо, скинешь какие-нибудь результаты "распознавания" объекта с помощью своих камер. Кстати, в каком виде будет представлен этот результат?

>> No.35175  
File: 1278487367339.jpg -(85847 B, 1024x689) Thumbnail displayed, click image for full size.
85847

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

>> No.35176  

>>35174
мы и в реальности их на глаз слабо можем распознать.
меш с параметрами, для начала.

>> No.35178  

>>35176
Интересно, что будет на меше с невидимой стороны.
Кстати, физические движки в своем абсолютном большинстве не умеют нормально работать с non-convex мешами, поэтому тебе в любом случае скорее всего прийдется высчитывать какие-то bounding box'ы или сферы для нетривиальных объектов, прежде чем передавать их солверу.

>> No.35179  

>>35178
тут ещё блядский видеопоток получить не получается, не то что.

кто-нибудь знает способ перенаправить вывод мплеера в виртуальное устройство, а не в ебаный файл. ну или хоть как быстро по команде из программы получать мплеером пикчи? именно быстро, а не запуская его каждый раз.

>> No.35180  
File: 1278493708224.jpg -(92415 B, 400x400) Thumbnail displayed, click image for full size.
92415

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

>> No.35181  
File: 1278495237418.png -(142588 B, 318x396) Thumbnail displayed, click image for full size.
142588

>>35180
эту проблему можно решить прыщепайпами, но это очередные прыщекостыли.

>> No.35182  
File: 1278497653280.jpg -(478675 B, 605x605) Thumbnail displayed, click image for full size.
478675

>>35181
как всегда, все прыщепроблемы из-за прыщенедодокументации, ну и потому что я- прыщедурак. пересобрал с флагом ffmpeg- всё работает. теперь надо разобраться с параметрами ввода, а то разрешение в джва раза меньше возможного. или пойду-ка я книжки почитаю.

>> No.35183  
File: 1278501881209.png -(67149 B, 480x715) Thumbnail displayed, click image for full size.
67149

>>35182
и разрешение вроде починил.

>> No.35237  

История ИИ и нейронных сетей
Baumgartner,
Peter, and Sabine Payr, eds. Speaking Minds: Interviews with Twenty Eminent Cognitive Scientists (Princeton, N. J.: Princeton University Press, 1995).
В этой книге содержатся интересные интервью с множеством ведущих мыслителей в области ИИ, нейронных сетей и когнитивной науки.

Dreyfus,
Hubert L. What Computers Still Can't Do: A Critique of Artificial Reason (Cambridge, Mass.: MIT Press, 1992).
Это всесторонний обзор истории ИИ, написанный одним из его сильных критиков.

Anderson,
James A., and Edward Rosenfeld, eds. Neurocomputing, Foundations of Research (Cambridge, Mass.: MIT Press, 1988).
Эта большая книга является аннотированной коллекцией важных статей по нейронным сетям и теории мозга, охватывающая годы с 1980 по 1987, представленных в хронологическом порядке.

Palm,
Günther. Neural Assemblies: An Alternative Approach to Artificial Intelligence (New York: Springer Verlag, 1982).

Следующие книги рекомендуются для тех, кто хочет узнать больше о нейробиологии и неокортексе.
Crick,
Francis H. C. "Thinking about the Brain," Scientific American, vol. 241 (September 1979): pp. 181–88. Also available in The Brain: A Scientific American Book (San Francisco: W. H. Freeman, 1979).
Эта статья, которая заставила меня заинтересоваться мозгом.

Koch,
Christof. Quest for Consciousness: A Neurobiological Approach (Denver, Colo.: Roberts and Co., 2004).
Если вы ищете базовое введение в нейробиологию и науку о мозге в одной книге, эта книга должна стать хорошим началом.

Mountcastle,
Vernon B. Perceptual Neuroscience: The Cerebral Cortex (Cambridge, Mass.: Harvard University Press, 1998).
Великолепная книга, посвященная все и вся о неокортексе.

Kandel,
Eric R., James H. Schwartz, Thomas M. Jessell, eds. Principles of Neural Science, 4th ed. (New York: McGraw-Hill, 2000).

Это однотомная энциклопедия по всем нейронным вещам.
Shepherd,
Gordon M., ed. The Synaptic Organization of the Brain, 5th ed. (New York: Oxford University Press, 2004).
Это технический ресурс по всем частям мозга, особенно по синапсам. Я использую ее как источник ссылок.

Koch,
Christof, and Joel L. Davis, eds. Large-scale Neuronal Theories of the Brain (Cambridge, Mass.: MIT Press, 1994).
В этой книге вы можете найти кусочки модели «память-предсказание».

Braitenberg,
Valentino, and Almut Schüz. Cortex: Statistics and Geometry of Neuronal Connectivity, 2nd ed. (New York: Springer Verlag, 1998).
Эта книга описывает статистические свойства мозга мыши.

Следующие статьи являются оригинальными источниками для некоторых важных концепций.
Mountcastle,
Vernon B. "An Organizing Principle for Cerebral Function: The Unit Model and the Distributed System," in Gerald M. Edelman and Vernon B. Mountcastle, eds., The Mindful Brain (Cambridge, Mass.: MIT Press, 1978).
Именно в этой статье я впервые прочел предположение Монткастла о том, как на общих принципах целиком работает неокортекс.

>> No.35238  

>>35237

Creutzfeldt,
Otto D. "Generality of the Functional Structure of the Neocortex," Naturwissenschaften, vol. 64 (1977): pp. 507–17.
После того, как я закончил написание On Intelligence, я обратил внимание на эту статью, в которой, подобно Монткастлу, давался общий кортикальный алгоритм.

Felleman,
D. J., and D. C. Van Essen. "Distributed Hierarchical Processing in the Primate Cerebral Cortex," Cerebral Cortex, vol. 1 (January/February 1991): pp. 1–47.
Это неоклассическая статья, описывающая иерархическую организацию визуального кортекса.

Sherman,
S.M., and R.W. Guillery. "The Role of the Thalamus in the Flow of Information to the Cortex," Philosophical Transactions of the Royal Society of London, vol. 357, no. 1428 (2002): pp. 1695–708.
Дает обзор таламической организации и излагает гипотезу Шермана-Гиллери, в которой таламус служит информационным шлюзом между кортикальными областями.

Rao,
R. P., and D. H. Ballard. "Predictive Coding in the Visual Cortex: A Functional Interpretation of Some Extra-Classical Receptive-field Effects," Nature Neuroscience, vol. 2, no. 1 (1999): pp. 79–87.
Я включил эту статью как пример недавнего исследования, которое касается предсказания и иерархии.

Guillery,
R. W. "Branching Thalamic Afferents Link Action and Perception," Journal of Neurophysiology, vol. 90 (2003): pp. 539–48.
Young,
M. P. "The Organization of Neural Systems in the Primate Cerebral Cortex," Proceedings of the Royal Society: Biological Sciences, vol. 252 (1993): pp. 13–18.
Эти две великолепно написанные книги дают подтверждение, что моторное поведение и сенсорное восприятие тесно связаны и являются частью одного и того же процесса.

>> No.35240  
File: 1278592260133.jpg -(325742 B, 1600x1271) Thumbnail displayed, click image for full size.
325742

>>35174
physx- closed-source. нахуй, на помойку.

>> No.35248  

>>35240
Могу еще предложить havok. Ой, он тоже закрытый. Значит, ищи открытые говно-движки. Можно поинтересоваться, а закрытый софт использовать религия не позволяет?

>> No.35252  
File: 1278604049311.jpg -(1420608 B, 2100x3000) Thumbnail displayed, click image for full size.
1420608

>>35248
о, прыщеборец. нет, просто я на этом говне буду основывать фундамент разума, и хотелось бы иметь определённый контроль над функциями, ну и понимать что он вообще делает. алсо пока читаю про bullet. как вообще можно использовать в своём творении закрытый код, при такой-то интеграции? это как при рисовании картины фоны заказать каким-то левым людям.

>> No.35256  

>>35252
фундамент ИИ на основе физического движка, ну-ну.

>> No.35295  
File: 1278642904190.jpg -(138365 B, 534x1024) Thumbnail displayed, click image for full size.
138365

>>35256
не на основе, а использует. две большие разницы.

>> No.35309  
File: 1278678001912.jpg -(482610 B, 792x1106) Thumbnail displayed, click image for full size.
482610

хранение последовательностей, авто-ассоциативность и инвариантное представление

>> No.35310  
File: 1278678072818.jpg -(115957 B, 500x627) Thumbnail displayed, click image for full size.
115957

>>35309
Мысли и воспоминания ассоциативно связаны, произвольно мысли никогда не возникают. Информация, поступающая в мозг, автоассоциативно связана сама с собой, заполняя настоящее и автоассоциативно связывая с тем, что должно последовать.

>> No.35311  
File: 1278678244771.jpg -(681402 B, 1200x974) Thumbnail displayed, click image for full size.
681402

Это как если бы отдельные части моего мозга говорили: «Посреди стола есть компьютер? Да. Он черный? Да. В правом углу стола есть лампа? Да. Лежит ли словарь там, где я его оставил? Да. Прямоугольно ли окно, вертикальны ли стены? Да. С того ли направления светит солнце для данного времени дня? Да». Но когда поступает некоторый визуальный паттерн, которого я не помню в этом контексте, предсказание нарушается. И ошибка привлекает мое внимание.

>> No.35313  
File: 1278678446296.jpg -(696015 B, 1920x1200) Thumbnail displayed, click image for full size.
696015

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

«Предсказание» обозначает, что нейроны, задействованные в восприятии вами двери становятся активными до того, как они получат сенсорную информацию. Когда поступает сенсорная информация, она сравнивается с тем, что ожидалось. Когда вы подходите к двери, ваш кортекс формирует массу предсказаний на основе предыдущего опыта. Когда вы подошли к ней, он предсказывает, что почувствуют ваши пальцы, когда вы прикоснетесь к двери, и в каком положении будут ваши суставы, когда вы действительно дотронетесь до двери. Когда вы начинаете открывать дверь, ваш кортекс предсказывает, какое сопротивление двери возникнет и как она будет звучать. Когда все ваши предсказания совпадут, вы войдете в дверь не осознавая, что эти предсказания были проверены.

>> No.35316  
File: 1278678838011.jpg -(495717 B, 900x659) Thumbnail displayed, click image for full size.
495717

чёрт, хорошо что я её решил дочитать. возможно визуальный интеллект может быть более точным и быстрым, чем нейросетевой.

>> No.35318  
File: 1278679147323.jpg -(341602 B, 700x729) Thumbnail displayed, click image for full size.
341602

>>35316
ну конечно же! и чтение слова происходит как последовательный анализ последовательности буквенных паттернов(он происходит с любого конца и места).

так, мне срочно нужна инфа по быстрому поиску, который использует гугл. прекрасные сэры, у нас есть возможность воти в историю.

>> No.35319  
File: 1278679357016.jpg -(171220 B, 572x800) Thumbnail displayed, click image for full size.
171220

>>35318
они размещают записи в базе данных по уровню популярности страницы и производят выборку только из релевантной рейтингу области?

где все умные новерьки, когда вы мне нужны?!

>> No.35321  
File: 1278679640236.jpg -(81822 B, 500x400) Thumbnail displayed, click image for full size.
81822

>>35318

>прекрасные сэры, у нас есть возможность воти в историю
>> No.35323  
File: 1278680053286.png -(38899 B, 385x545) Thumbnail displayed, click image for full size.
38899

>>35321
медведь не лезь, меня сегодня муза посетила, так посетила, посидела и ушла. у ей имелись веские причины, я не имею права на нытьё..

высоцкого включу пожалуй.

>> No.35326  
File: 1278680987868.jpg -(475395 B, 1200x420) Thumbnail displayed, click image for full size.
475395

>>35319
похоже что так и есть. хм.

>> No.35328  
File: 1278681726393.jpg -(192225 B, 602x800) Thumbnail displayed, click image for full size.
192225

>>35326
http://en.wikipedia.org/wiki/PageRank

>> No.35329  
File: 1278682265632.jpg -(170978 B, 601x774) Thumbnail displayed, click image for full size.
170978

>>35326
похоже, что я мудак, у меня же xapian'а и recoll'а исходники есть.

>> No.35331  
File: 1278682851838.jpg -(866856 B, 1363x1858) Thumbnail displayed, click image for full size.
866856

>>35329
на всякий случай.
http://infolab.stanford.edu/~backrub/google.html
http://www.googleguide.com/google_works.html

>> No.35332  
File: 1278683460842.jpg -(96360 B, 548x800) Thumbnail displayed, click image for full size.
96360

http://rriai.org.ru/dinamicheskie-bayesovskie-seti.html

>> No.35333  
File: 1278684015107.jpg -(195920 B, 835x1000) Thumbnail displayed, click image for full size.
195920

В будущем, когда животное попадает в ту же самую или похожую ситуацию, память распознает поступающую информацию как похожую и вспоминает, что происходило в прошлом. Воспоминания сравниваются с потоком сенсорной информации. Вместе они «замещают» текущий сенсорный поток и предсказывают, что будет дальше.

>> No.35334  

Теперь вообразите, что кортекс помнит не только то, что животное видело, но также помнит поведение старого мозга в подобной ситуации. Мы даже не предполагаем, что кортекс знает о различиях между ощущением и поведением; для кортекса все это паттерны. Когда животное обнаруживает себя в такой же или подобной ситуации, он не только предвидит будущее, но также вспоминает, какое поведение привело к такому видению будущего.

>> No.35335  
File: 1278684123235.jpg -(56830 B, 498x373) Thumbnail displayed, click image for full size.
56830

>>35318
Попробуй сортировку по категориям и двоичный поиск только в нужных категориях, хотя я не совсем представляю что именно тебе нужно.

>> No.35336  
File: 1278684273422.jpg -(58586 B, 1000x400) Thumbnail displayed, click image for full size.
58586

Об интеллекте - Хокинз Джеф

>> No.35337  
File: 1278684382403.jpg -(145792 B, 3840x1024) Thumbnail displayed, click image for full size.
145792

Наоборот, я думаю, что кортекс сначала предсказывает увидеть руку, и это предсказание именно то, что вызывает моторные команды, делающие предсказание истинным.

>> No.35339  
File: 1278685022315.jpg -(630625 B, 1200x800) Thumbnail displayed, click image for full size.
630625

>>35337
вот верно, нужно определять поведение на модели, ей даже не нужно будет видеть то, что видят камеры.

достаточно пройтись хешированием по размытой форме.

>> No.35340  
File: 1278686930198.jpg -(290864 B, 1024x596) Thumbnail displayed, click image for full size.
290864

Клетки в IT говорят нам, что мы видим лицо где-то в поле нашего зрения. Эти клетки, называемые обычно нейронами лица, будут возбуждаться независимо от того, наклонено ли лицо, повернуто ли, или частично загорожено. Это часть инвариантного представления для «лиц».

Но когда вы начинаете понимать, что функция кортекса – предсказание, то вам необходимо ввести в модель обратные связи; мозг должен посылать поступающую информацию обратно к областям, которые получили информацию первыми. Предсказание требует сравнения того, что происходит и того, что вы ожидаете. То, что действительно происходит идет вверх, то, что вы ожидаете идет вниз.

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

Инвариантность также работает в нашу пользу, когда информация идет вниз по иерархии. Если вы хотите напечатать Геттисбергское послание вместо того, чтоб произнести, все начинается с того же самого паттерна на вершине иерархии. В следующей области ниже по иерархии паттерн разворачивается в фразы. Еще ниже фразы разворачиваются в слова. До сих пор нет разницы между тем, произносится Геттисбергское послание или печатается.

>> No.35341  
File: 1278687038109.jpg -(543069 B, 646x1000) Thumbnail displayed, click image for full size.
543069

>>35339
нет, хуйня. хотя клетки можно было бы характеризовать на остнове задетекченых краёв, в особенности для новых образов.

>> No.35343  
File: 1278687947866.jpg -(857945 B, 950x1084) Thumbnail displayed, click image for full size.
857945

ну а с высшими функциями я так и думал, пфф.

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

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

ассоциативная память необходима для комбинации идей, естественно.

а кортикальные сети неоптимизируемы на процессорах. кортикальные сети- это сильный ии, нам нужен сверхсильный.

>> No.35346  
File: 1278689108814.jpg -(238986 B, 860x548) Thumbnail displayed, click image for full size.
238986

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

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

Каждый раз, когда вы чешете голову, движение вызывает внутри громкий звук, но обычно вы не осознаете его. Однако, если сфокусироваться на нем, вы можете отчетливо услышать звук. Это другой пример того, как сенсорная информация, которая обычно обрабатывается нижними уровнями кортикальной иерархии, может быть перенесена на высшие уровни если вы обращаете на нее внимание.

Я полагаю, что альтернативный путь через таламус – это механизм, посредством которого мы обращаем внимание на детали, которые обычно мы не замечаем. Он пропускает группирование последовательностей в слое 2, посылая сырые данные в вышестоящую область кортекса. Биологи показали, что альтернативный путь может включаться одним из двух способов. Один из них – это сигнал из вышестоящей области самого кортекса. Этот способ вы использовали, когда я попросил вас обращать внимание на детали, которые вы обычно не замечаете, такие как точка над i или звук почесывания головы. Второй способ активировать этот путь – это сильный неожиданный сигнал снизу. Если сигнал на альтернативный путь достаточно сильны, он посылает вышестоящей области сигнал пробуждения, которая снова может включить альтернативный путь. Например, если бы я показал вам лицо и спросил, что это было, вы бы ответили «Лицо». Если бы я показал вам то же самое лицо, но со странной отметиной на носу, вы сначала узнали бы лицо, но затем немедленно ваши нижние зрительные уровни заметили бы, что что-то не так. Эта ошибка форсирует открытие альтернативного пути.

>> No.35348  
File: 1278690416498.jpg -(58747 B, 576x433) Thumbnail displayed, click image for full size.
58747

Произнесенные и написанные слова – это просто паттерны мира, также как мелодии, машины и дома. Синтаксис и семантика языка не отличаются от иерархической структуры других повседневных объектов.

естественно.

Люди спрашивают с волнением и удивлением, «Вы хотите сказать, что наш мозг создает модель мира? И что эта модель может быть более важной, чем реальность?»
ну я же с самого начала, ещё в треде о пм об этом говорил.

Сейчас я надеюсь, что я убедил вас в том, что разум это просто название для того, что делает мозг.
а об этом ещё в том треде на 500+ постов, сразу.

после всех этих книг мне становится неинтересно жить.

>> No.35349  
File: 1278690974074.jpg -(97252 B, 694x1017) Thumbnail displayed, click image for full size.
97252

>>35341
форм замкнутых, каких ещё краёв, ёпт.

пойду спать наверное.

>> No.35350  
File: 1278692292759.jpg -(352697 B, 686x851) Thumbnail displayed, click image for full size.
352697

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

вообще наверное хэш такой не очень будет от суммирования векторов отличаться.

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

>> No.35351  
File: 1278692428334.jpg -(38464 B, 456x500) Thumbnail displayed, click image for full size.
38464

>>35350
кругами тогда уж. и как циклический код.

>> No.35352  
File: 1278692728008.png -(1136020 B, 1280x768) Thumbnail displayed, click image for full size.
1136020

>>35351
http://www.google.ru/search?num=100&hl=ru&safe=off&client=firefox-a&hs=YzG&rls=org.gentoo%3Aen-US%3Aunofficial&q=computer+vision+circle+hash&aq=f&aqi=&aql=&oq=&gs_rfai=

я ёбаный гений. какой буст чсв.

>> No.35457  
File: 1278930995530.png -(128587 B, 399x297) Thumbnail displayed, click image for full size.
128587

почему-то алгоритмы нахождения контура рассчитаны на grayscacle пикчи. ну что за тупость.

>> No.35459  
File: 1278931986026.jpg -(861538 B, 849x1198) Thumbnail displayed, click image for full size.
861538

>>35457
Да, лучше брать длину вектора разности.

Кстсти, на cpu или gpu вычисления? Могу помочь с шейдерами если что.

>> No.35462  
File: 1278935803851.jpg -(540539 B, 1111x1600) Thumbnail displayed, click image for full size.
540539

>>35459
пока что цпу. шейдеры.. ну шейдеры это надо расширения какие-то подключать, да у меня и карточка старая. вторые же шейдеры ещё не позволяли получать результат вычислений напрямую? опять же, а есть ли в линупсах эта функциональность желя?

>> No.35463  

>>35462

>пока что цпу.

Жаль.

>вторые же шейдеры ещё не позволяли получать результат вычислений напрямую?

Относись к ним как к фильтрам фотошопа. На входе несколько текстур, и результат текстура. Ими как минимум очень хорошо делать предварительную обработку изображения, вычислять контуры. Вот только передача текстур между процом и видюхой небыстрая операция, поэтому гибридные алгоритмы (с постоянным обменом gpu-cpu) довольно плохой вариант.
Мы при воплощении augmented reality почти все вычисления на gpu перенесли. Разница в производительности на порядок.

>опять же, а есть ли в линупсах эта функциональность желя?

Разумеется. Он кроссплатформленный, и все фичи зависят только от железа и драйверов. У нвидиа одинаково функциональные дрова под все платформы, по крайней мере никогда не сталкивался с проблемами при портировании.

Если опыта с ними нет, то лучше и не заморачивайся пока с ними. Там потоковые вычисления, совсем другая идеалогия. Но производительность можно получить в десятки раз выше.

>> No.35695  

Как успехи, оп?

>> No.35705  

>>35695
ворк ин прогресс. когда что-нибудь интересное получится- расскажу.

>> No.36048  
File: 1280534613969.jpg -(150104 B, 900x401) Thumbnail displayed, click image for full size.
150104

>>35705
какие есть доступные методы получения карты расстояний, помимо лазерного сканера?

>> No.36049  
File: 1280534767314.jpg -(116407 B, 533x800) Thumbnail displayed, click image for full size.
116407

так, я попроую извлечь контуры из картинки(здесь их необходимо привязать к предпологаемым объектам), а потом размазать их в пространстве по карте расстояний. дальше наверное нужно строить решетку по вершинам, принадлежащим к одному объекту.

>> No.36050  
File: 1280535046977.jpg -(567821 B, 704x900) Thumbnail displayed, click image for full size.
567821

>>36048
Расстояние до объекта можно определить по сдвигу изображения на разных камерах, дальше простая геометрия и у тебя есть трехмерные координаты любого объекта относительно камер. Явный недостаток - на больших расстояниях гигантская погрешность.

>> No.36052  
File: 1280535735827.jpg -(108810 B, 810x367) Thumbnail displayed, click image for full size.
108810

>>36050
да, реконструкция тоже подразумевалась, помимо неё что есть? что-нибудь, что бы можно было купить в магазине.

>> No.36053  

>>36052
ну или самому на коленке спаять.

>> No.36059  
File: 1280536348083.jpg -(166083 B, 716x800) Thumbnail displayed, click image for full size.
166083

>>36053
Если тебя интересуют готовые библиотеки для решения подобной задачи, то я о них не знаю. Готовый алгоритм можно содрать из autopano/hugin, где решается задача поиска идентичных точек на разных изображениях, только он не очень быстрый.

>> No.36060  
File: 1280536762622.jpg -(111792 B, 508x688) Thumbnail displayed, click image for full size.
111792

>>36059
да у меня есть библиотеки нужные. я про другой метод. ну там аккустический сенсор, быть может. что-нибудь точное и доступное.

>> No.36062  
File: 1280537552898.jpg -(154559 B, 1004x771) Thumbnail displayed, click image for full size.
154559

>>36060
ладно, окей, ещё один вопрос на логику рассуждения- если я найду контуры по каждому из ргб цветов, а потом возьму их пересечение- результат должен давать правильное выделение цветных объектов, так?
а то почитал я исходники цепей фримана, и что-то у меня такое ощущение, что нормально мне их для работы с векторами не переписать.

>> No.36063  
File: 1280537610348.jpg -(183635 B, 700x700) Thumbnail displayed, click image for full size.
183635

>>36062
нет, это бред какой-то.

>> No.36065  
File: 1280538696737.png -(4363 B, 480x144) Thumbnail displayed, click image for full size.
4363

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

>> No.36066  
File: 1280539003746.jpg -(278957 B, 1920x1080) Thumbnail displayed, click image for full size.
278957

>>36065
хотя можно ведь просто сложить соответствующие координаты, взять модули результатов, всё это сложить, и получить относительную оценку расстояния между векторами, так ведь?

>> No.36068  
File: 1280544199170.jpg -(97538 B, 696x777) Thumbnail displayed, click image for full size.
97538

>>36065

> поиска квадратных корней

Используй либо алгоритм быстрого вычисления квадратного корня, либо считай через rsqrtss.

>> No.36070  

>>36065

>расстояния между двумя векторами

Высказывание не имеет смысла. Если нужно быстро находить расстояние между двумя точками, попробуй настроить алгоритм на работу с квадратом расстояния - часто это возможно. Если нет - можно реализовать быстрое вычисление квадратного корня с потерей точности.

>> No.36071  

>>36066

>хотя можно ведь просто сложить соответствующие координаты, взять модули результатов, всё это сложить, и получить относительную оценку расстояния между векторами, так ведь?

чушь какая-то, читай линейную алгебру.
С твоим "алгоритмом" пары точек (-1, 0, 0) (1, 0, 0) и (0, 0, 0) (0, 0, 0) будут иметь одинаковые "оценки расстояния"

>> No.36074  

Расстояние между точками находиться немного не так, это корень из суммы квадратов разностей координат

>> No.36079  
File: 1280573955414.jpg -(188398 B, 738x1082) Thumbnail displayed, click image for full size.
188398

>>36071
разности в смысле. хотя это вообще все хуета, там алгоритм по определению ребер c производными работает.
>>36070
а зачем там вообще корень извлекать? граница то относительная.

>> No.36084  

>>36079
для векторного процессора видеокарты длина вектора 1 операция. расстояние между точками, как длина вектора разности 2 операции.

>> No.36141  
File: 1280724314947.jpg -(25613 B, 316x500) Thumbnail displayed, click image for full size.
25613

>>35459
вообще ты правильно про шейдеры сказал, цепи фримена нахуй не нужны, на помойку сразу. сейчас попробую алгоритм собеля использовать с шейдерами, если что его напильником обработаю. а распознавание нужно будет имплементировать относительно больших скоплений рёбер, а не контуров.

>> No.36142  
File: 1280726901129.jpg -(327181 B, 1024x1536) Thumbnail displayed, click image for full size.
327181

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

>> No.36143  
File: 1280727764739.jpg -(147117 B, 700x500) Thumbnail displayed, click image for full size.
147117

а где можно почитать про сравнение изображений на основе содержания, вроде как тинай? круговое хэширование наверное здесь не пойдёт, хотя. но готовое проработанное решение было бы получше.

>> No.36144  
File: 1280729331997.gif -(1919 B, 75x89) Thumbnail displayed, click image for full size.
1919

>>36143
вот что я понял- надо после определения рёбер, разбить картинку на квадратики, а дальше прогнать сравнение текстур в этих квадратиках. далее мы соединяем те концы рёбер, около которых(или с одной стороны от которых, так можно заодно получить вектор к центру формы) текстура равномерна. так можно получит ~адекватные контуры, в отличии от фримановских цепей.

>> No.36145  
File: 1280731044640.jpg -(66974 B, 1024x769) Thumbnail displayed, click image for full size.
66974

>>36144
или может рассечь её на подмножества крупными рёбрами. вот и механизм для распознавания, когда будет подключена память.

>> No.36146  
File: 1280743659387.png -(788492 B, 850x521) Thumbnail displayed, click image for full size.
788492

>>36141
Будут вопросы по GLSL и OpenGL, помогу разобраться.

>> No.36147  
File: 1280744928772.jpg -(161007 B, 462x528) Thumbnail displayed, click image for full size.
161007

>>36146
у тебя под ленупс нету случаем готовой инициализации контекста окошка, опенжеля и шейдеров. я это дело последний раз писал сколько-то там лет назад.

>> No.36148  
File: 1280747324380.jpg -(43441 B, 600x600) Thumbnail displayed, click image for full size.
43441

Выдернуто из моего проекта, каких-то переменных недосчитаешься
Инициализация шейдеров

#include <GL/gl.h>

#include <gl/glext.h>
#define GLH_EXT_SINGLE_FILE
#include <glh/glh_extensions.h>
int InitShaderExtensions()
{
	if(!glh_init_extensions("GL_VERSION_1_2 GL_ARB_shader_objects  GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_fragment_shader"))
{
	ErrorBox("Can`t initialise shader extensions! Could not continue without shader support");
	return -1;
}
return 1;
}
void AddShader(unsigned int Program, unsigned int type,const char *code) 
{
if(!Program)
	return;
GLhandleARB object = glCreateShaderObjectARB(type);
glShaderSourceARB(object, 1, &code, NULL);
glCompileShaderARB(object);
GLint compiled;
glGetObjectParameterivARB(object, GL_OBJECT_COMPILE_STATUS_ARB, &compiled);
if(!compiled) 
{
	GLint length;
	glGetObjectParameterivARB(object, GL_OBJECT_INFO_LOG_LENGTH_ARB, &length);
	BYTE *buf = new BYTE[length];
	glGetInfoLogARB(object, length, &length, (GLcharARB*)buf);
//	Log(LOG_ERROR,"Can`t compile %s shader (AddShader func)\n Shader error: \n%s\n",
//		(type == GL_FRAGMENT_SHADER_ARB) ? "fragment" : "vertex", buf);
	delete []buf;
	Program=0;
	return;
}
glAttachObjectARB(Program, object);
glDeleteObjectARB(object);
int result=0;
if(Program)
{
	glLinkProgramARB(Program);
	glGetObjectParameterivARB(Program, GL_OBJECT_LINK_STATUS_ARB, &result);
	if(!result)
	{
		Log("Can`t link %s shader",
			(type == GL_FRAGMENT_SHADER_ARB) ? "fragment" : "vertex");
		Program=0;
		return;
	}
	glValidateProgramARB(Program);
	glGetObjectParameterivARB(Program, GL_OBJECT_VALIDATE_STATUS_ARB, &result);
	if(!result)
	{
	//	Log("Can`t validate %s %s shader",Name.c_str(),
	//		(type == GL_FRAGMENT_SHADER_ARB) ? "fragment" : "vertex");
		Program=0;
		return;
	}
}
}	

Далее загрузка собственно:

	Program = glCreateProgramObjectARB();
	if(!Program)
{
// Log("Can`t create program object for %s shader",name);
Program=0;
return;
}
	AddShader(GL_VERTEX_SHADER_ARB, shader_code_vs.c_str());
AddShader(GL_FRAGMENT_SHADER_ARB, shader_code_ps.c_str());
glUseProgramObjectARB(Program);
	//повторить для всех самплеров
glUniform1iARB(glGetUniformLocationARB(Program, "BaseSampler"), 0); //имя самплера в коде шейдера, 0 - слой в glMultitexture
glUniform1iARB(glGetUniformLocationARB(Program, "AdditionSampler"), 1);
...
	glUseProgramObjectARB(0);

Вот так передаются переменные в шейдер. Желательно GetHandler(hname) сохранить в какую-то переменную, если ты часто передаёшь, и использовать значение этой переменной чтобы по строке постоянно не искать. Передавать надо по 4 переменных, потому что если передавать меньше всё равно будет до 4х достраивать, передавая нули (лишний расход пропускной способности шины)

void Uniform4f(int Program, char*hname,float f0,float f1,float f2,float f3)
{
glUseProgramObjectARB(Program);
SetUniform4f(GetHandler(hname),f0,f1,f2,f3);
glUseProgramObjectARB(0);
}

Включить/выключить шейдер

glUseProgramObjectARB(Program);
glUseProgramObjectARB(0);
>> No.36149  
File: 1280747667209.gif -(1495 B, 59x18) Thumbnail displayed, click image for full size.
1495

Что у тебя за IDE? в kDevelop есть темплейт с инициализацией OpenGL и отрисовкой треугольника.

%%труднокапча%%

>> No.36150  
File: 1280747681814.jpg -(336202 B, 1461x935) Thumbnail displayed, click image for full size.
336202

что такое

>#include <glh/glh_extensions.h>

и зачем оно надо?

>> No.36151  
File: 1280747871460.jpg -(145775 B, 1024x768) Thumbnail displayed, click image for full size.
145775

>>36149
у меня есть темплейт но он под глют.

>> No.36152  

>>36150
Вообще, это для инициализации расширений опенгл.

Такс, кажется я давно не переписывал этот файл.
Шейдеры давно вошли в стандарт опенгл, сейчас перепишу без расширений.

Как всегда со всеми инициализациями - один раз когда-то написал, и таскаю из проекта в проект.

>> No.36153  
File: 1280748168011.jpg -(53116 B, 567x348) Thumbnail displayed, click image for full size.
53116

>>36152
да я уже нашел свежий пример.
алсоу, нихуёвый у твоего файла возраст, шейдеры были в желе ещё 5 лет назад.

>> No.36154  

>>36153
и я говорю именно о стандарте.

>> No.36155  

Сам в шоке. У меня шейдеры обёрнуты в удобный класс для загрузки из xml, до сих пор не было ни одного повода для изменений. Дурацкий принцип не лезть в то, что хорошо работает.

>> No.36158  

Для инициализации расшиерний есть glew.

>>36155
Шейдеры в xml, можно на это взглянуть?

>> No.36159  

>>36158

Всеголишь обёртка для инклудов, связи с переменными и самплерами. Что-то вроде .fx

<Shader>

<Include>shaders/include/bones.xml</Include>
<Include>shaders/include/wind.xml</Include>
<Sampler layer="0">BaseSampler</Sampler>
<Vertex>

void main(void)
{

gl_TexCoord [0] = gl_MultiTexCoord0;
gl_Position     = gl_ModelViewProjectionMatrix * E3_Wind(E3_BoneTransform(gl_Vertex));

}

</Vertex>
<Fragment>

uniform sampler2D BaseSampler;

void main(void)
{

vec4 base = texture2D ( BaseSampler, gl_TexCoord [0].xy );
gl_FragColor = base;

}

</Fragment>

</Shader>

Вот один из инклудов

<Shader_Include>

<Predefined>

<Time>time</Time>

</Predefined>

<Vertex>

uniform float time;

vec4 E3_Wind(vec4 pos)
{

//Слабые колебания с изменением формы
pos.x+=sin(time+pos.z)*(1.0-gl_MultiTexCoord0.y)*gl_MultiTexCoord0.x;
pos.y+=cos(time+pos.z+0.357)*(1.0-gl_MultiTexCoord0.y)*gl_MultiTexCoord0.x;
//Просто колебания от ветра
pos.x+=0.645*sin(time*3.234+5.1928+pos.x*0.1)*(1.0-gl_MultiTexCoord0.y)*(1.0-gl_MultiTexCoord0.y);
pos.x+=0.347*sin(time*2.829+1.4252+pos.x*0.1)*(1.0-gl_MultiTexCoord0.y)*(1.0-gl_MultiTexCoord0.y);
return pos;

}
</Vertex>

</Shader_Include>

>> No.36160  

>>36159
понятно. А в какой отрасли ты работаешь, если не секрет?

>> No.36354  
File: 1281016404256.jpg -(76102 B, 403x713) Thumbnail displayed, click image for full size.
76102

>>36160
вот кстати да.

>> No.36363  

>>36160
Ничего интересного. Пытаемся пережить кризис (или это повод задерживать зп?) Сейчас относительно стабильный профит от создания сайтов. Иногда пишем софт на заказ.

>> No.36639  

подниму, раз такая хуйня.

>> No.37710  
File: 1282874537618.jpg -(227034 B, 932x1051) Thumbnail displayed, click image for full size.
227034

кстаати, кг-кун, какие в желе есть фильтры для текстуры встроенные? ну там антиалясинг, все дела, чтобы перед шейдером картиночку подправить, оно не помешает.

книжечка роста по glsl навевает на меня воспоминания о лежании в больнице. я тогда её всю прочитал. в интернетах я плохо тогда разбирался, пришлось пару книг заказывать по графике.

>> No.37715  

>>37710

Эти 2 строчки для фильтрации при уменьшении и увеличении текстур.
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,параметр);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,параметр);

Отстуствие фильтрации GL_NEAREST
Линейная GL_LINEAR

С мипмапами:

Билинейные
GL_NEAREST_MIPMAP_NEAREST
GL_LINEAR_MIPMAP_NEAREST
Трилинейные
GL_NEAREST_MIPMAP_LINEAR
GL_LINEAR_MIPMAP_LINEAR

Для фильтрации с мипмапами вместо glTexImage2D нужно использовать gluBuild2DMipmaps

Анизотропная фильтрация:
GLint MaxAniso = 0;
glGetIntegerv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT,&MaxAniso);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAX_ANISOTROPY_EXT,

                MaxAniso-0.1);

Ссылки почитать:
http://gamedev.tomsk.ru/index.php?newsid=11
http://www.gamedev.ru/code/articles/?id=4156

>> No.38026  
File: 1283449037847.gif -(8913 B, 140x117) Thumbnail displayed, click image for full size.
8913

Этот бамп должен напомнить ОП-куну, что надо работать, а не хуи пинать.

>> No.38050  
File: 1283513380147.jpg -(500977 B, 1378x900) Thumbnail displayed, click image for full size.
500977

>>38026
а то. работа идёт.

>> No.38058  

>>37715

>http://gamedev.tomsk.ru/index.php?newsid=11

Трудно переваривается. Оригинал получше будет: http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=07

>> No.38059  
File: 1283520817671.jpg -(276548 B, 700x592) Thumbnail displayed, click image for full size.
276548

>>38058
а мне фильтрация на самом деле не нужна была, потому что исходник без трансформаций и по размеру равен окну, так то.

>> No.38903  

этот тред пусть пока полежит наверху.

>> No.38912  

Как успехи, ОП?

>> No.38918  
File: 1284630912710.jpg -(211222 B, 850x565) Thumbnail displayed, click image for full size.
211222

>>38912
я прошлую сессию только что закрыл. сегодня-завтра-в воскресенье буду кодить.

>> No.39331  

пусть висит сверху, работа идёт.

>> No.39846  

>>39331
нет, я опять занимаюсь какой-то хуйнёй.

работай сука

>> No.40897  
File: 1287114199476.jpg -(844407 B, 1280x1024) Thumbnail displayed, click image for full size.
844407

Pose Estimation Using Structured Light and Harmonic
Shape Contexts
-advances in computer vision 2007, стр 281
нужно пить кофе

cg-кун, а вот скажи, у нас можно маской из фреймбуфера вырезать произвольные четырёхугольники и делать из них текстуруы каким-нибудь встроенным методом?

>> No.40898  
File: 1287114751165.jpg -(60602 B, 1024x535) Thumbnail displayed, click image for full size.
60602

>>40897
и акцепт фоном хорошо бодрит

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

>> No.40900  

>>40898

>акцепт

давай в радио впихивай

>> No.40902  
File: 1287115410033.jpg -(100451 B, 1200x462) Thumbnail displayed, click image for full size.
100451

>>40897
Cognitive Vision and Perceptual Grouping by Production
Systems with Blackboard Control – An Example for
High-Resolution SAR-Images
там же.
>>40900
так днём же играет.

>> No.40903  

>>40902

>так днём же играет.

эх, значит не получается у меня по времени попасть

>> No.40904  

>>40902
3D Tracking Using 2D-3D Line Segment
Correspondence and 2D Point Motion
стр 367

>> No.40905  

>>40904
Learning Nonlinear Manifolds of Dynamic Textures

и всё в тех частях перечитать.

>> No.40906  

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

>> No.40907  

>>40906
не, блюр там не пойдёт, надо по типу сюзан что-то делать, или банально сравнивать все пиксели? тогда все маски изосрутся на краях. потом подумать.

>> No.40908  
File: 1287122844635.jpg -(877814 B, 1920x1440) Thumbnail displayed, click image for full size.
877814

cg-кун, а как работает функция min с векторами например? она возвращает минимум в каждой переменной, или наименьший вектор по длине?

>> No.40909  

Покомпонентно. min (1.0,0.0) и (0.0,1.0) результат будет (0.0,0.0)

>> No.40910  

>>40898
Ты можешь нарисовать прямоугольник в текстуру, в качестве текстурных координат указать твои 4 точки. Диапазон координат 0.0-1.0

>> No.40911  

>>40910
но как конкретно? ничего не понел.

>> No.40913  

А ты отрисовку в текстуру освоил? FBO например? если нет, читать тут: http://steps3d.narod.ru/tutorials/framebuffer-object-tutorial.html

Затем рисуешь четырехугольник в твой fbo:

glBegin(GL_QUADS);
glTexCoord2f(0.0, 0.0); glVertex3f(-1.0, -1.0, 0.0);
glTexCoord2f(1.0, 0.0); glVertex3f( 1.0, -1.0, 0.0);
glTexCoord2f(1.0, 1.0); glVertex3f( 1.0, 1.0, 0.0);
glTexCoord2f(0.0, 1.0); glVertex3f(-1.0, 1.0, 0.0);
glEnd;

Где в glTexCoord2f подставляешь свои 4 точки, которые ты выбрал в диапазоне 0.0-1.0 (0 и 1 - края изображения, 0.5 - точка в центре изображения).

с вот таким шейдером:

void main()
{
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_Position = vec4(gl_Vertex.xyz, 1.0);
}

>> No.40914  

>>40913
а. точно.

>> No.40916  

>>40913
а как обращаться к компоненте вектора?

>> No.40917  

>>40916
уже понял.

>> No.40918  

>>40916
В шейдерах? Как угодно.
v.x //одна компонента
v.xy //вектор из 2х компонент
v.yxz //ты можешь даже создать вектор из произвольного набора компонент
v.xxyx //и даже так

>> No.40948  

>>40918
а вот кстати, есть какая-нибудь внутренняя функция для вычисления длины вектора?

>> No.40950  
File: 1287181515596.png -(185868 B, 800x800) Thumbnail displayed, click image for full size.
185868

>>40948

> функция для вычисления длины вектора?

Пишется за 5 минут.

>> No.40951  
File: 1287182070389.jpg -(61027 B, 300x300) Thumbnail displayed, click image for full size.
61027

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

>> No.40953  

>>40948

length(вектор)

Неожиданно? ещё может пригодиться нормализация:

normalize(вектор)

>>40950
окуу, своя функция это > 6 инструкций, а тут преимущество векторного процессора видеокарты.

>> No.40954  

>>40913
нужно помнить

>> No.40955  
File: 1287183556709.jpg -(82970 B, 632x896) Thumbnail displayed, click image for full size.
82970

>>40953
а есть какая-нибудь документация по glsl хрошая, по типу красной(красная же?) книги?

>> No.40956  

>>40955
http://www.opengl.org/sdk/libs/OpenSceneGraph/glsl_quickref.pdf
на 3й странице про шейдеры. Краткий но ёмкий справочник.

http://www.opengl.org/wiki/Shading_languages

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

>> No.40958  
File: 1287184835306.jpg -(202094 B, 700x700) Thumbnail displayed, click image for full size.
202094

>>40956
Прошу прощения, на шестой странице. Мне стоит чаще обращаться к документации

>> No.40959  
File: 1287185345092.jpg -(632900 B, 2400x840) Thumbnail displayed, click image for full size.
632900

>>40956>>40958
благодарю. держи няшную юми.

>> No.41075  
File: 1287274311201.jpg -(125319 B, 700x592) Thumbnail displayed, click image for full size.
125319

вот интересно, почему мне, чтобы добыть любую, абсолютно любую научную работу в свободном доступе(ну то есть реально, свободна для использования и ссылок) нужно зарегистрироваться за 19.99 долларов и стать членом какой-нибудь сраной конференции? если все эти работы всё равно свободно доступны членам этих научных клубов? что за элитизм, блядь?

>> No.41079  

>>41075
Вот тебе хитрый план: попробуй ее получить через библиотеку.

>> No.41083  
File: 1287293618007.png -(4171 B, 258x239) Thumbnail displayed, click image for full size.
4171

>>41079
труд какого-то американского профессора из стенфорда? в моём замкадье? через библиотеку? лол.

господа, а вот если мне кажется, что я изобрёл новый метод кодирования информации, что делать? к преподователю по этой теме я обращаться опасаюсь, ибо может спиздить. как делать и публиковать работу/диплом?

>> No.41084  

да, похоже что я изобрёл абсолютно новый способ хранения контуров.

>> No.41085  

>>41084
а главное- оценки и сравнения. как вообще найти, есть такой метод уже или нет? гугление пока ничего не даёт.

>> No.41086  
File: 1287296725478.jpg -(1360888 B, 2000x1181) Thumbnail displayed, click image for full size.
1360888

корректно ли опенжель умножает вектор на матрицу? можно ли поворачивать вектор матрицей?

>> No.41090  

>>41086
Конечно можно. Например, почти в каждом вершинном шейдере умножается позиция вершины на матрицы трансформаций.

В отличии от hlsl нет специальных функций, просто знак умножения.

Матрицы можно строить из векторов или других матриц:

mat3 rotmat = mat3(tangent,bitangent,normal);

Вот с кватернионами труднее, приходится описывать функции:

//
// Quaternion multiplication
//
vec4 quatMul ( in vec4 q1, in vec4 q2 )
{
vec3 im = q1.w * q2.xyz + q1.xyz * q2.w + cross ( q1.xyz, q2.xyz );
vec4 dt = q1 * q2;
float re = dot ( dt, vec4 ( -1.0, -1.0, -1.0, 1.0 ) );
    return vec4 ( im, re );
}
//
// vector rotation via quaternion
//
vec4 quatRotate ( in vec3 p, in vec4 q )
{
vec4 temp = quatMul ( q, vec4 ( p, 0.0 ) );

return quatMul ( temp, vec4 ( -q.x, -q.y, -q.z, q.w ) );
}
>> No.41092  

http://www.opengl.org/registry/specs/NV/texture_barrier.txt

Няшное расширение нашёл. Позволяет корректно одновременно читать и писать в одну и ту же текстуру. Мне пригодилось чтобы уменьшить количество текстур в пост-процессинге.

>> No.41098  
File: 1287310028009.jpg -(510546 B, 1024x768) Thumbnail displayed, click image for full size.
510546

>>41092
а на скольки картах оно есть? у меня есть, например.

>> No.41100  

>>41098
SM 4.0, то есть начиная с gf8xxx. У меня эта ветка постпроцессинга всё равно слишком прожорлива для старых карточек.

Вообще можешь не отвлекаться на это расширение. Я просто очень рад что избавился от лишней полноэкранной fp16 текстуры и парочки копирований из текстуры в текстуру и решил поделиться открытием.

>> No.41101  

>>41083
Не знаю, является ли это реферативным журналом, или только его усеченная копия: http://www2.viniti.ru/index.php?option=com_content&task=view&id=236&xmf=s&Itemid=101# В вашей вузовской/в крайнем случае городской публичной библиотеке должен быть.
Здесь про заказы. http://www2.viniti.ru/index.php?option=com_content&task=category&sectionid=6&id=89&Itemid=75 У нас можно заказать через вузовскую библиотеку, и вроде это бесплатно. Поговори с работниками в своей.
Алсо, кроме винити есть еще что-то, вроде.
Не прогулял библиографию-кун.

>> No.41113  
File: 1287372318460.jpg -(177205 B, 600x901) Thumbnail displayed, click image for full size.
177205

а функция nozmalize случаем модуль ли не возвращает? или она только масштабирует вектор к 1.0? а то у меня тут какая-то хуита с градиентами.

>> No.41133  

Не понял, что ты делаешь, но мне кажется что 3D и opengl тебе не нужно. Если стоит задача опознать что перед тобой, то тебе нужна нейронка + фильтры (вообще это сложная задача, если есть много разных классов и условий, и она не решена окончательно. Последние тренды в этом направлении - свёрточные сети и deep belief networks, смотри например http://clgiles.ist.psu.edu/papers/IEEE.TNN.face.recognition.hybrid.nn.pdf и обзоры на deeplearning.net). Если нужна форма объекта - используй 3D-сканер, технология отлажена.

>> No.41144  

>>41133
Ты путаешь выбор языка с выбором алгоритмов. GL и шейдеры потому ч то видеокарта больше приспособлена для обработки изображений и уделывает процессор на несколько порядков, хоть и ценой некоторой специфичности разработки.

Нет, функия нормализации только делит компоненты вектора на его длину. А вот итоговый цвет на выходе шейдера может клампиться от 0 до 1. Ты какой формат текстур используешь? Если тебе нужны текстуры плавающей точкой посмотри на steps3d.narod.ru статью про hdr, там описана работа с fp16 текстурами.

>> No.41145  

Вообще шейдер покажи, что ты в нём делаешь.

>> No.41158  
File: 1287441426630.jpg -(152758 B, 605x855) Thumbnail displayed, click image for full size.
152758

>>41133
нет, у меня другой подход, нейросети- хуйня.
>>41144
да мне и обычных хватает, я в них вектор градиента храню.
>>41145
но зачем?

>> No.41160  

>>41133
в этой работе, к слову, тоже есть feature detection.

>> No.41171  

Оп, я придумал няшный алгоритм для получения текстуры глубины по 2м изображениям:
Рисуешь с включенным смешиванием по альфа-каналу 2n полноэкранных прямоугольников, для каждого указываешь цвет как i/(2n)
в шейдере при чтении 2й текстуры указываешь смещение координаты по оси расположения камер как (цвет-0.5)*какойта_коэффициент. В шейдере сравниваешь значения пикселей и пишешь на выходе цвет полигона со значением альфы либо 1 если совпали либо 0 если нет.
Ты можешь построить 2 текстуры от ближнего к дальнему и от дальнего к ближнему(разница знака для смещения в шейдере), по разнице этих 2х текстур увидешь где неправильно определена глубина.

>> No.41187  

>>41158
Там далеко не обычные нейросети. Впрочем удачи тебе в написании оригинального и эффективного решения )

>> No.41188  

>>41187
Алсо в этом видео www.youtube.com/watch?v=AyzOUbkUf3M рассказывается, как с помощью сетей доверия удалось преодолеть проклятие размерности и создать работающие многослойные сети, в которых каждый новый слой повышает точность восприятия. Каждый отдельный слой при этом работает только с одной "категорией", т.е.обучение проводится поэтапно.

>> No.41241  
File: 1287568972876.jpg -(129093 B, 525x700) Thumbnail displayed, click image for full size.
129093

>>41188
это уже относится к поиску решений, там посмотрим, тоже будет наверное.

>> No.41662  

Оп, ну как успехи?

>> No.41663  
File: 1288172586130.png -(337287 B, 750x750) Thumbnail displayed, click image for full size.
337287

>>41662
плохо, я долги сдавал и хуи пинал, недавно диплом взял по кз. сейчас буду делать свой алгоритм распознования контуров. в общем-то у меня и вопросов никаких нет, так что тред пока пусть полежит.

>> No.42445  
File: 1289339521476.png -(941496 B, 1050x900) Thumbnail displayed, click image for full size.
941496

аноны, ну вот я изобрёл получается новый алгоритм, как его запатентовать или опубликовать чтобы преподователь не спиздил например?

>> No.42447  
File: 1289339779115.png -(242121 B, 900x600) Thumbnail displayed, click image for full size.
242121

>>42445
Можешь получить патенты в разных странах, но толку от этого будет не очень много - доказать его использование в закрытых продуктах будет очень сложно.

>> No.42448  
File: 1289340111661.jpg -(133999 B, 850x566) Thumbnail displayed, click image for full size.
133999

>>42447
да мне бы просто чтобы потом можно было говорить, что это метод изобретённый мной. ну и как-нибудь через интернет бы, чтобы никуда не ездить в академии.

>> No.42449  
File: 1289340459786.jpg -(199263 B, 600x497) Thumbnail displayed, click image for full size.
199263

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

>> No.42450  

>>42445
дам только один совет, доставшийся еще от моего деда: в патентное бюро один не суйся, спиздят

>> No.42451  

>>42449
украдут, я знаю, люди=пидарасы и им нельзя доверять.

>повыкладывай его на тематических форумах

как вот делают научные публикации ты не знаешь?

>> No.42452  
File: 1289340847318.jpg -(419035 B, 560x700) Thumbnail displayed, click image for full size.
419035

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

>> No.42453  

>>42451
в смысле местами надо предложения поменять. ну ты понел короче.

>> No.42456  

>>42452
Опубликуй в developer.nvidia.com
За использование спецефических расширений и логотипа нвидии в примерах дополнительные плюшки.

>> No.42458  
>как вот делают научные публикации ты не знаешь?

Я знаю. Посмотри условия публикации в PLoS (http://www.plos.org/) Для многих журналов у них есть такая фича, что если статья по их мнению окажется очень интересной и ты напишешь им объяснительную вроде "I'm a poor russian student/postdoc with no funding, but I want my algorithm to be known everywhere for teh Greater Good", то тебя могут освободить от уплаты взноса за публикацию (овер 1к уёв, предполагается что это оплачивается с гранта). Но он для всяких естественнонаучных исследований. В PLoS ONE есть раздел математика, но боюсь что это не то.
Ещё есть http://arxiv.org/, где ты можешь напечатать препринт. Думаю это что тебе нужно. Главное, нажать submit ровно в 16:00 EST.

>> No.43492  

Наткнулся на интересный канал, решил бампануть.
http://www.youtube.com/user/okreylos

>> No.44576  
File: 1291133641850.jpg -(2235800 B, 2592x1944) Thumbnail displayed, click image for full size.
2235800

кг-кун, а как работают функции dFdx и dfDy?

>> No.44577  

сраная сажа.

>> No.44579  
File: 1291134444392.jpg -(278247 B, 600x811) Thumbnail displayed, click image for full size.
278247

>>44576
В случае векторов - покомпонентно.

Если ты о назначении, то они возвращают приращение заданной величины (которую ты им передаёшь в качестве параметра) в соседнем пикселе (в пространстве экрана вправо и вверх соответственно).

Пример использования: dFdx(gl_TexCoord[0].st)

>> No.44581  

>>44579
только в соседнем? а смысл?

>> No.44582  
File: 1291135790828.jpg -(27231 B, 400x300) Thumbnail displayed, click image for full size.
27231

>>44581
Изначально для мипмаппинга. Широко используется в алгоритмах screen space ambient oclusion и parallax-occlusion mapping.

Есть ещё интересный алгоритм для освещения сцены в экранном пространстве - зная глубину фрагмента (gl_FragCoord.z), считаем нормаль как

vec3 n=normalize(vec3(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z),1));

Отпадает необходимость считать нормали вершин, хранить их в памяти и трансформировать шейдером, но накладывает ряд ограничений на модели освещения и обладает рядом существенных недостатков в общем случае.

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

Что-то я разговорился, это тебе врядли интересно.

>> No.44583  

>>44582

>это тебе врядли интересно

нет же, я внимательно слушаю.

>> No.44585  

>>44583
Первоначально это предназначалось для вот таких штук:
http://www.opengl.org/wiki/GLSL_Sampler#Gradient_texture_access
Но я таким никогда не пользовался, мне хватало
http://www.opengl.org/wiki/GLSL_Sampler#Lod_texture_access
для доступа к определённому мипмапу

Что конкретно ты хотел получить от этих функций?

>> No.44587  
File: 1291138210276.jpg -(189872 B, 1920x1200) Thumbnail displayed, click image for full size.
189872

>>44585
да я так, в общем. подумал, что их можно было бы для чего-нибудь применить.

>> No.44679  
File: 1291209008183.jpg -(112035 B, 640x480) Thumbnail displayed, click image for full size.
112035

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

>> No.44696  
File: 1291223968019.png -(49361 B, 495x491) Thumbnail displayed, click image for full size.
49361

а я тут намедни придумал свой способ тиннинга рёбер в шейдере. хотя, строго говоря, никаких приемуществ у него перед тем, что уже есть, не заметно.

>> No.44697  
File: 1291224009606.png -(556214 B, 512x512) Thumbnail displayed, click image for full size.
556214

а лена пусть тут полежит.

>> No.44699  
File: 1291226403311.png -(37257 B, 493x503) Thumbnail displayed, click image for full size.
37257

>>44696
в вот тиннинг без выебонов. такие дела.

>> No.44701  
File: 1291228839120.png -(120424 B, 840x840) Thumbnail displayed, click image for full size.
120424

а как добраться до данных, отрендренных через фреймбуфер в текстуру?

glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,width,height,0,GL_BGR,GL_UNSIGNED_BYTE,NULL);
glGenFramebuffersEXT(1,&fb);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT,fb);
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT,GL_COLOR_ATTACHMENT0_EXT,GL_TEXTURE_2D,fbtext,0);

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

>> No.44702  
File: 1291229239391.gif -(14774 B, 256x192) Thumbnail displayed, click image for full size.
14774

>>44701
или может быть можно в шейдере последовательно с пикселями отдельными как-то работать, хотя я сомневаюь, да и данные мне всё равно нужны будут вне желя.

>> No.44705  
File: 1291230042237.jpg -(694649 B, 1960x1000) Thumbnail displayed, click image for full size.
694649

>>44701
Есть 2 способа, вот быстрый:
http://www.comp.nus.edu.sg/~ashwinna/docs/FBO_Readback_using_PBO.pdf
А простой это отрисовать fbo текстурой на экран и воспользоваться glReadPixels
Вот спека по этой функции:
http://www.opengl.org/sdk/docs/man/xhtml/glReadPixels.xml

>> No.44709  
File: 1291231565633.jpg -(73194 B, 480x678) Thumbnail displayed, click image for full size.
73194

>>44705
glgetimage я уже сам нагуглил, а вот за быстрый способ спасибо.

>> No.44795  
File: 1291294749974.jpg -(188488 B, 1068x750) Thumbnail displayed, click image for full size.
188488

кг-кун, а если я хочу ещё использовать для передачи между фреймбуфферами информации альфакомпонент- обязательно нужно поддержку блендинга включать? или только в буферах выставить тип rgba?

>> No.44796  

>>44795
опять же, если выставить прикреплённым к буфферам текстурам типы glfloat- можно рендерить пиксели с отрицательными значениями цветов?

>> No.44800  

>>44795
Не нужно ничего включать. Кстати, можно одновременно писать в несколько текстур разные значения. Тебе может пригодиться:
http://steps3d.narod.ru/tutorials/mrt-tutorial.html
>>44796
Да, если отключить приведение цвета к отрезку [0;1]

    glClampColorARB ( GL_CLAMP_FRAGMENT_COLOR_ARB, GL_FALSE );
glClampColorARB ( GL_CLAMP_READ_COLOR_ARB, GL_FALSE );
>> No.44806  

>>44800
о, спасибо, семью операциями и одним шейдером меньше на каждый пиксель.

>> No.44814  

>>44800

>glClampColorARB ( GL_CLAMP_FRAGMENT_COLOR_ARB, GL_FALSE );
>glClampColorARB ( GL_CLAMP_READ_COLOR_ARB, GL_FALSE );

не работают. я вот одного не понимаю, почему у меня на выходе из шейдеа альфа должна быть 0.0, везде rgba, а читается 1.0. какого хуя?

>> No.44815  

>>44814
ага, а из текстуры всё правильно читается.

>> No.45209  
File: 1291509840051.jpg -(330128 B, 750x895) Thumbnail displayed, click image for full size.
330128

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

>> No.45210  
File: 1291510376258.jpg -(760149 B, 594x817) Thumbnail displayed, click image for full size.
760149

я нихуя не понимаю.

есть фильтр такого вида:

if(cpix.a>0.0)

for(i=-trunc(rad);i<=trunc(rad);i++)
for(j=-trunc(rad);j<=trunc(rad);j++)
{n0=texture2D(tex,vec2((x+i)/wdh,(y+j)/hgt));
if(cpix.a<n0.a) {al=0.0; break;}}
else al=0.0;

если rad передаётся из программы- безбожная хуйня получается, если его задать внутри шейдера- всё правильно работает. что за хуйня?! в обоих случаех значение 3.0

>> No.45211  

>>45210
ололо, я его не в том шейдере выставлял. ну охуеть какие клёвые ошибки!

>> No.45218  
File: 1291540163929.jpg -(549159 B, 1000x707) Thumbnail displayed, click image for full size.
549159

>>45210
Двойные циклы - это пиздец производительности. Никто так не делает.
Правильно будет разложить алгоритм на несколько шейдеров, пройти сначала по х, потом по результату пройти все y, ты получишь вместо N^2 вычислений N*2. Я не видел вего алгоритма, поэтому не могу советовать как конкретно это делать тебе. Но именно так поступают с размытием по Гаусу.
Далее,

int i_rad=trunc(rad);
for(i=-i_rad;i<=i_rad;i++)

Далее, у тебя al в любом случае равен нулю, поэтому else не нужен. Лишние условные конструкции снижают когерентность вычислений.

int i_rad=trunc(rad);
vec2 tex_invsize(1.0/wdh,1.0/hgt);
if(cpix.a>0.0)
for(i=-i_rad;i<=i_rad;i++)
for(j=-i_rad;j<=i_rad;j++)
{
n0=texture2D(tex,vec2((x+i),(y+j))*tex_invsize);
if(cpix.a<n0.a)
break;
}
al=0.0;

Вот как-то так если в одном шейдере.

Я понимаю, у тебя ещё рано говорить об оптимизации, но некоторые вырвиглазные вещи лучше фиксить сразу и больше так не писать, это просто культура програмирования на gpu. А оптимизация шейдеров это уже просмотр ассемблерного кода изменение алгоритмов для уменьшения числа инструкций.

>> No.45219  

>>45218

>у тебя al в любом случае равен нулю

А блин, туплю, сори. Но я всё равно сейчас подумаю над минимизацией условных конструкций, на таком маленьком клочке кода их слишком много.

>> No.45220  

>>45219
Ладно, дождусь когда ты закончишь и выложишь листинг шейдеров, тогда будем пытаться максимум условных конструкций свести к математике.

>> No.45222  

>>45220
Кстати, почему бы тебе сразу vec2(1.0/wdh,1.0/hgt) не передавать в шейдер, у тебя же он только в этом виде используется? Ну или передавать vec4((1.0/wdh,1.0/hgt),wdh,hgt), это по скорости то же самое потому что на самом деле видеокарта не умеет передавать vec2, она всё передаёт как vec4, даже отдельный float, при этом оставшиеся компоненты передаёт нулями.

>> No.45223  

>>45222
Кстати, если тебе нужны контуры, есть классический алгоритм - размыть всю картинку гаусом в 2 шейдера, а в третьем искать разницу между исходной и размытой текстурой. Ради интереса попробуй в фотошопе 2 одинаковых слоя со смешиванием different и нижний размыть гаусом с разными значениями радиуса.

>> No.45247  
File: 1291551797525.jpg -(139699 B, 681x800) Thumbnail displayed, click image for full size.
139699

>>45218

>Правильно будет разложить алгоритм на несколько шейдеров, пройти сначала по х, потом по результату пройти все y

то есть, вместо одного буффера и одной текстуры использовать две? далее, мне не нужно размытие, там ищется максимум на квадрате, то есть с разложением что-то не то.
>>45223
у него есть какое-нибудь название, чтобы загуглить?

вот с таким быдлокодом что можешь посоветовать?

uniform sampler2D tex;

uniform float wdh,hgt,rad;

void main()
{float x=gl_TexCoord[0].s*wdh,y=gl_TexCoord[0].t*hgt,a,b,i,j,al;
vec4 cpix=texture2D(tex,vec2(x/wdh,y/hgt)),n0,n1,n2,n3;

al=cpix.a;
if(cpix.a>0.0)
for(i=-trunc(rad);i<=trunc(rad);i++)
for(j=-trunc(rad);j<=trunc(rad);j++)
{n0=texture2D(tex,vec2((x+i)/wdh,(y+j)/hgt));
if(i>=0.0) {if(cpix.a<n0.a) {al=0.0; break;}}
else if(cpix.a<=n0.a) {al=0.0; break;}}
else al=0.0;

if(cpix.x>0.0)
{a=cpix.y*2.0-1.0;
b=cpix.z*2.0-1.0;
n0=texture2D(tex,vec2((x+a)/wdh,(y+b)/hgt));
n1=texture2D(tex,vec2((x-a)/wdh,(y-b)/hgt));
n2=texture2D(tex,vec2((x+2.0*a)/wdh,(y+2.0*b)/hgt));
n3=texture2D(tex,vec2((x-2.0*a)/wdh,(y-2.0*b)/hgt));
if(cpix.x>n0.x&&cpix.x>=n1.x&&cpix.x>n2.x&&cpix.x>=n3.x) gl_FragColor=vec4(cpix.x,cpix.y,cpix.z,cpix.a);
else gl_FragColor=vec4(0.0,0.0,0.0,al);}
else gl_FragColor=vec4(0.0,0.0,0.0,al);}

>> No.45250  
File: 1291553648042.png -(233786 B, 600x600) Thumbnail displayed, click image for full size.
233786

>>45247
Название не знаю, это один из способов fake screen-space ambient occlusion только там размывают текстуру глубины.

Вот пиксельный шейдер размытия по Гауссу:
uniform sampler2D mainTex;
uniform vec2 dx
void main (void)
{

vec2 tx  = gl_TexCoord [0].xy;
vec2 sdx = dx;
vec4 sum = texture2D ( mainTex, tx ) * 0.134598;
sum += (texture2D ( mainTex, tx + sdx ) + texture2D ( mainTex, tx - sdx ) )* 0.127325;
sdx += dx;
sum += (texture2D ( mainTex, tx + sdx ) + texture2D ( mainTex, tx - sdx ) )* 0.107778;
sdx += dx;
sum += (texture2D ( mainTex, tx + sdx ) + texture2D ( mainTex, tx - sdx ) )* 0.081638;
sdx += dx;
sum += (texture2D ( mainTex, tx + sdx ) + texture2D ( mainTex, tx - sdx ) )* 0.055335;
sdx += dx;
sum += (texture2D ( mainTex, tx + sdx ) + texture2D ( mainTex, tx - sdx ) )* 0.033562;
sdx += dx;
sum += (texture2D ( mainTex, tx + sdx ) + texture2D ( mainTex, tx - sdx ) )* 0.018216;
sdx += dx;
sum += (texture2D ( mainTex, tx + sdx ) + texture2D ( mainTex, tx - sdx ) )* 0.008847;
sdx += dx;
gl_FragColor = sum;

}

В первом проходе vec2 (0.001953,0.000000); Во втором vec2 (0.000000,0.001953);

В третьем шейдере контуры брать как разность исходной и размытой текстуры. Ничего сложного.

Шейдер для размытия с заданным размером ядра можно сгенерировать скриптом:
http://steps3d.narod.ru/downloads/gen-blur.py

По быдлокоду я пока занят, единственное, в глаза сразу бросается

    if(cpix.x>n0.x&&cpix.x>=n1.x&&cpix.x>n2.x&&cpix.x>=n3.x)
gl_FragColor=vec4(cpix.x,cpix.y,cpix.z,cpix.a);
else
gl_FragColor=vec4(0.0,0.0,0.0,al);

Вот так будет лучше

    gl_FragColor=vec4(clamp((cpix.x-max(max(max(n0.x,n1.x),max(n2.x,n3.x)))*1000.0,0.0,1.0)*cpix.xyz,al);
>> No.45251  

>>45250

>gl_FragColor=vec4(clamp((cpix.x-max(max(max(n0.x,n1.x),max(n2.x,n3.x)))*1000.0,0.0,1.0)*cpix.xyz,al);

Так и знал что запутаюсь, вот так (лишний max ):
gl_FragColor=vec4(clamp((cpix.x-max(max(n0.x,n1.x),max(n2.x,n3.x)))*1000.0,0.0,1.0)*cpix.xyz,al);

>> No.45252  
File: 1291554599532.jpg -(190769 B, 800x755) Thumbnail displayed, click image for full size.
190769

>>45250

>http://en.wikipedia.org/wiki/Difference_of_Gaussians

ты имел в виду вот этот алгоритм, да.
а гауссов блюр я уже давно написал, он честно говоря нахуй не нужен.
вот то, что даёт разность.

>> No.45253  
File: 1291554694933.png -(54634 B, 793x744) Thumbnail displayed, click image for full size.
54634

а вот что получается у меня. нужно заметить, что после nms прошлая пикча будет выглядеть как говно, а здесь есть ещё и углы, что позволяет достроить замкнутые контуры, да ещё и градиент бесплатный.

>> No.45254  

>>45253
плюс программа может сама контролировать уровень дитализации.

>> No.45255  

>>45254

>дитализации

ёбаный стыд.

>> No.45256  
File: 1291555526760.jpg -(68694 B, 504x284) Thumbnail displayed, click image for full size.
68694

слушай, кг-кун, а есть какой-нибудь способ сдвинуть фрагмент в пиксельном шейдере? ну, то есть, мне нужно во время nms взять пиксель в точке с максимальной интенсивностью угла из района, а потом сдвинуть его по его вектору в другую точку. или вот nms с интерполяцией.

>> No.45257  

>>45253
Статические алгоритмы не нужны... Человек очень много извлекает инфы именно из движения. Когда точка обзора движется относительно сцены, можно определять расстояние до предметов и их форму.

>> No.45258  

>>45256
Есть. Сначала пишешь в текстуру вектора сдвига.
А в следующем проходе прибавляешь этот вектор к текстурным координатам.

>> No.45259  

>>41171
А вот это пробовал?

>> No.45260  

>>45257
ок.
>>45258
и получается ещё один проход.

>> No.45261  

>>45259
нет, я пока с одним изображением работаю.

>> No.45262  

>>45260

>ещё один проход.

Ничего страшного.

>> No.45263  

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

>> No.45269  
File: 1291559788852.jpg -(306611 B, 716x970) Thumbnail displayed, click image for full size.
306611

слушай, кг-кун, а как тебе вот такой вопрос:
есть в текстуре карта углов, можно как-нибудь при помощи мипмапов сразу делать лод маленького разрешения для этой текстуры, в котором будет храниться как бы индекс областей на большой текстуре, в которых эти углы следует учитывать?

>> No.45274  

>>45260
Ну раз ок, попробуй на досуге прочесть Джеймса Гибсона "Экологический подход к зрительному восприятию". Может быть, тебя пробьет, и ты напишешь совершенно новую систему компьютерного зрения.

>> No.45293  

>>45274
такой подход с нашими техническими возможностями не стыкуется. но у меня есть план.

>> No.45296  

>>45293
Так ты уже читал что ли? Кстати, "экологический" это только так, на самом деле, этот подход неплохо алгоритмизируется.

>> No.45304  
File: 1291568489101.png -(73297 B, 647x758) Thumbnail displayed, click image for full size.
73297

кг-кун, halp! вот гляди, я читаю из текстуры пиксели, потом пишу их на экран, с размерами всё корректно, но картинка сдвинута наверх. ЧЗХ?!
>>45296
как-то так, долго объяснять, но то что я сейчас пишу- это не алгоритм зрения нифига. это стартер для него.

>> No.45305  

>>45269
Мипмапы это всего лишь последовательно уменьшенные в 2n раз копии основной текстуры. Но никто не мешает тебе сделать ещё один проход во фреймбуфер поменьше и сохранить в него текстурные координаты областей с углами.

Что ты вообще хочешь сделать? Что тебе в итоге надо получить?

>> No.45312  
File: 1291571052706.jpg -(1276906 B, 1800x1200) Thumbnail displayed, click image for full size.
1276906

>>45305
я так, возможности разные выискиваю.
>>45304
переделал инициализацию- всё заработало.

>> No.45313  
File: 1291571808222.png -(208333 B, 500x600) Thumbnail displayed, click image for full size.
208333

>>45312
Вот хоть убей, не смог найти. Лет 12 назад натыкался на интересный алгоритм, ещё без шейдеров, для построения геометрического силуэта объекта по чёрно-белому изображению. Автар предполагал, что со временем этот алгоритм сможет быть реализован в реальном времени для построения стенсильных теней.

>> No.45317  

>>45313

>Автар

Кэмерон виноват. В каждой статье о трёхмерном изображении пишут о его дурацком фильме.

>> No.45319  
File: 1291581806671.jpg -(90083 B, 525x700) Thumbnail displayed, click image for full size.
90083

http://pastebin.com/fBkCx95t

Пардон, писал бы с ПК, оформил бы всё тут, но пишу с телефона. (соображения по практике и теории)

>>42445

Патентуя алгоритм ты всего лишь можешь позволить его копилефтить в САСШ. Ну и ещё рекламируешь себя любимого.

>> No.45337  
File: 1291592410322.png -(38233 B, 495x499) Thumbnail displayed, click image for full size.
38233

а вот теперь ещё и с бинарным истончением!

завтра начну контуры строить.

>> No.45383  
File: 1291644081525.png -(6131 B, 640x400) Thumbnail displayed, click image for full size.
6131

>>45313
анончики-аноны, есть вопрос.

допустим, у нас есть два графика. один график- график поведения сигнала на всей протяженности сигнала, сигнал циклический. второй график- динамически поступающий сигнал, он может являеться куском первого сигнала, и нужно быстро проверять, является он, или нет, при том что начинаться он может в любой точке первого.

вот как эту проверку осуществлять быстро?

>> No.45384  
File: 1291644154058.png -(15231 B, 240x180) Thumbnail displayed, click image for full size.
15231

>>45383
даже так, как второй график с картинки быстро наложить на наиболее похожее место в первом? при том, что во втором могут быть искажения. буду рад любым идеям.

>> No.45385  

>>45383
http://ru.wikipedia.org/wiki/%D0%A1%D0%B2%D1%91%D1%80%D1%82%D0%BA%D0%B0_%28%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%29

>> No.45386  

>>45383
Один из подходов:
твой график - f(x), по нему ты заранее строишь функцию x(f)
Искомый кусок g(y)
Почленно проверяешь g(y)==f(x(g))

>> No.45387  

>>45385
проблема в том, что у меня сигнал дискретный, а не функция.

>> No.45389  

>>45387
На >>45386 дискретность/непрерывность не влияет. То, что x(f) получается многозначной усложняет применение этого метода на gpu.

>> No.45390  
File: 1291645266538.png -(1352283 B, 1600x1000) Thumbnail displayed, click image for full size.
1352283

>>45387
В случае линейных сигналов - вычитаешь из одного другой, сдвигая один из сигналов на единицу. Если разница меньше порогового значения то сигналы считать совпадающими.
Чувствую меня сейчас закидают тухлыми помидорами.

>> No.45391  
File: 1291645343402.png -(241834 B, 408x674) Thumbnail displayed, click image for full size.
241834

>>45386
да, а вообще-то хорошая идея.

>> No.45392  

Используется несколько текстур. В первой в rg пишется начальная координата в gb конечная. В эом диапазоне координат во второй текстуре последовательно хранятся все значения x(f)

>> No.45394  

>>45392
*в ba конечная

>> No.45395  
File: 1291645669427.jpg -(123389 B, 1440x646) Thumbnail displayed, click image for full size.
123389

>>45390
сигнал циклический. второй сигнал, который нужно поставить в соответствие первому, может начинаться в любом месте первого.
>>45392
что?

>> No.45396  

>>45386
но этот способ хорош, только если у сигналов одинаковая мощность.

>> No.45397  

>>45395
Если цепочки g(y) короткие (меньше 1000) а f(x) длинные, гораздо быстрее выйдет на cpu.

>> No.45398  
File: 1291646204483.jpg -(488840 B, 600x800) Thumbnail displayed, click image for full size.
488840

>>45395
Рано или поздно фазы принятого сигнала и образца совпадут и ты получишь соотвествие (если они конечно соотвествуют).

>> No.45399  
File: 1291646343392.jpg -(101006 B, 810x600) Thumbnail displayed, click image for full size.
101006

>>45398
там могут быть трапы.
>>45396
а как себя ведёт свёртка на функциях одинаковой формы и разной мощности?

>> No.45400  
File: 1291646395544.png -(437403 B, 1000x750) Thumbnail displayed, click image for full size.
437403

>>45396
Если мощность разная, проверка выглядит так: g(y)/f(x(g))==g(y+dy)/f(x(g)+dx)

>> No.45401  

>>45400
я так понимаю, что то же самое можно использовать, если мощность одинаковая, но второй сигнал масштабирован по оси x

>> No.45402  

>>45387
Точнее тебе больше подойдёт вот это http://ru.wikipedia.org/wiki/%D0%92%D0%B7%D0%B0%D0%B8%D0%BC%D0%BD%D0%BE%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BB%D1%8F%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F

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

>> No.45404  

>>45401
Правильно понимаешь. Можно вывести формулу и для одновременного масштабирования через частные производные, но я уже не помню настолько матан.

>> No.45405  
File: 1291648763122.jpg -(61440 B, 624x472) Thumbnail displayed, click image for full size.
61440

>>45386
на первый взгляд, вот это подходит, но f(x) обращается хуёво. например, на прямой линии x(0) будт возвращать всю линию.
далее, она никак не обеспечивает геометрической правильности функции, так как те же значения мощности могут быть раскиданы в любой последовательности.
>>45402
я уже вспоминаю преобразования фурье, но дело в том, что мои функции могут быть по разному масштабированы по x. а значит ряды будут разные.

>> No.45411  
File: 1291649855219.jpg -(272691 B, 750x817) Thumbnail displayed, click image for full size.
272691

>>45405
Можно через экстремумы. Например, у тебя в начальной ++--+-+, а в конечной -+-
С таким подходом тебе наплевать на масштабы по обеим осям. Если совпадут, по оси x проведёшь масштабирование по разности между соседними экстремумами и потом сравнишь значения по формуле >>45400

>> No.45412  
File: 1291650070638.jpg -(63385 B, 800x625) Thumbnail displayed, click image for full size.
63385

>>45411
с экстремумами точность сравнения будет хуёвая, и только для острых сигналов можно будет говорить о какой-то точности.

>> No.45413  

>>45405

>она никак не обеспечивает геометрической правильности функции

Обеспечивает, ты просто не так смещения представил себе.

g(y+i)/f(x(g(y))+i)==g(y+dy+i)/f(x(g(y))+dx+i)

то есть инвертированное обращение нужно только для нахождения начала последовательности

>> No.45414  

>>45412
Ты между строк читаешь? Экстремумы тебе нужны только для нахождения масштабов по осям и начальной точки. Дальше тебе последовательно каждый член сравнить надо.

>> No.45416  
File: 1291650412750.gif -(3728 B, 128x128) Thumbnail displayed, click image for full size.
3728

так, ну ладно, а допустим у нас два циклических сигнала одной величены и с шумом, как быстро выяснить их смещение по фазе?

>> No.45417  

>>45414
ага, идея здравая, но это опять же только для острых сигналов. вероятно.

>> No.45420  

>>45417
Прости, идеи кончились.

>> No.45434  
File: 1291665083869.jpg -(178225 B, 750x750) Thumbnail displayed, click image for full size.
178225

у меня появилась одна идея относительно контуров, сейчас будем е делать.

meanwhile, кто знает быстрые способы найти угол между двумя нормализоваными векторами?
кг-кун, стоит ли ради быстродействия вместо float передовать вектора как glbyte, если точность там всё равно не страдает?

>> No.45436  

>>45434
У тебя там терабайты твоих флоатов штоле, сцуко? Что для тебя слишком медленно- скалярное произведение векторов или арккосинус? Если медленно- табулируй его, правда точность будет меньше.

>> No.45442  

>>45434

>нормализоваными

Угол между векторами это стандартная функция dot (вектор1,вектор2)

>кг-кун, стоит ли ради быстродействия вместо float передовать вектора как glbyte,

Ни в коем случае. Ты не прирост а снижение производительности получишь из-за приведения типов, а при этом размер передаваемых данных видяха всё равно округляет: в общем случае видеокарта умеет получать атрибуты в шейдер только большими блоками, как vec4, то есть 4 флоата. Ео есть если ты передаёшь атрибутом 1 float, остальные драйвер автоматически дописывает нулями. Про общий случай я упомянул потому что одновременно с 4й версией шейдеров появились новые целочисленные форматы текстур и соответствующие им атрибуты.
кг-кун

>> No.45443  

>>45442
поправка, dot возвращает косинус разумеется. Если тебе в шейдере нужен угол в градусах или радианах, это в большинстве случаев значит у тебя что-то не так с алгоритмом. Для вращения лучше использовать матрицы или кватернионы.

>> No.45466  

http://www.membrana.ru/lenta/?10910
Просто проходил мимо и решил оставить это здесь.

>> No.45477  

>>45442
Не совсем правильно ты говоришь: если он передает в шейдер 4 раза по 1 флоату, большая вероятность, что драйвер все упакует в 1 вектор.

>> No.45482  
File: 1291719479946.jpg -(420336 B, 1000x808) Thumbnail displayed, click image for full size.
420336

так, господа, а вот в сях имеет смысл во имя производительности вложеные циклы чем-то замещать?

>> No.45483  

в частности, стоит ли замещать кострукцию вида
for(;;)
for(;;)
if(a==b) (return a.x+a.y; break;)

суммированием по всем точком и хитрожопым вычислением вектора?

>> No.45484  
File: 1291719703630.png -(1016394 B, 826x966) Thumbnail displayed, click image for full size.
1016394

>>45482
Смотря какие циклы и смотря чем ты их замещать будешь. Какая-нибудь библиотечная функция очень даже может отработать дольше чем вложенный цикл.

>> No.45485  

>>45482
Задай свой вопрос правильно и, возможно, получишь ответ.

>> No.45486  
File: 1291720210173.png -(789326 B, 1000x678) Thumbnail displayed, click image for full size.
789326

>>45484
for(x=-1;x<=1;x++)
for(y=-1;y<=1;y++)
if(textdata[cent+w0*b+a*4]>0&&x!=px&&y!=py) break;
вот такой цикл ищет следующую точку. имеет ли смысл вместо него считать суммуы произведений наличия вершины и её координат по всем точкам, с вычетом по p, для увеличения производительности?
>>45485
шо?

>> No.45489  

>>45486
Возьми линейку и померяй.
Also: ну и быдлокод же ты пишешь.

>> No.45490  
File: 1291721144133.png -(3253418 B, 1693x2404) Thumbnail displayed, click image for full size.
3253418

>>45486
Для 9ти итераций париться не стоит, для 9 миллиардов - стоит. Кстати условие textdata[cent+w0*b+a*4]>0 никак не зависит от значений x и y, вполне можно было бы вынести наружу и при невыполнении вообще не гонять циклы.

>> No.45491  

>>45490
Самое смешное то, что оптимизатор все сделает за него, поэтому разницы никакой не будет. На выходе в этом случае даже никаких циклов скорее всего не будет.

>> No.45492  
File: 1291722177093.jpg -(443361 B, 800x1000) Thumbnail displayed, click image for full size.
443361

>>45491
Не стоит излишне надеяться на оптимизатор, в каком-то особо хитром случае он может и не отработать.

>> No.45493  

>>45492
Когда получится неудовлетворительный результат, тогда и нужно чухаться. А экономить на спичках (оптимизируя цикл из 9 итераций) в наше время уже смысла нет.

>> No.45494  
File: 1291722749514.png -(896418 B, 1000x667) Thumbnail displayed, click image for full size.
896418

>>45493
В принципе да, но из такого подхода иногда получаются совсем забавные случаи вроде "- У тебя ядер много, ничего страшного не случится, если мы на одном бесконечный цикл погоняем.".

>> No.45495  

>>45494
Конечно, любые крайности, как правило, нежелательны.
В данном конкретном случае, нормальный программист сразу написал бы этот цикл как надо, не смотря на то, что выигрыша от этого он мог и не получить. Тут скорее был бы выигрыш в читабельности и логичности кода.

>> No.45496  

>>45490
о, ошибочка.

>> No.45500  

а у нас в c есть какой-нибудь встроеный стэк с вытеснением? тут возникла необходимость в стеке.

>> No.45501  

>>45500
Если глубина стека нужна не слишком большая, можешь, заменить его использование рекурсией.

>> No.45503  

>>45500
Реализация стека пишется строчек в 10-20.

>> No.45509  

Вы нароманы, все б вам самим написать. Чем вам stl не нравится? Ну не нраится темплейты, есть и другие варианты. Велосипед-то зачем изобретать? Линуксоиды блин.

>> No.45510  

>>45509
Stl он в C++ а не в C.

>> No.45512  
File: 1291739547796.jpg -(44220 B, 400x373) Thumbnail displayed, click image for full size.
44220

>>45509

>> No.45536  

новерь, дело в том, что есть один код...

int n=1;
float *mem=(float *)malloc(GLFLT);
while(1)
{
mem=(float *)realloc(mem,GLFLT);
mem[n]=rand();
n++;
}

какого-то хуя крашится после 7 итерации. чзх? почему realloc внезапно перестаёт реаллоцировать память? памяти- дохуя.

>> No.45539  

>>45536
Чему у тебя GLFLT равен? Не может быть такого, что он меньше sizeof(float)*7 ?

>> No.45541  

>>45539

> меньше sizeof(float)*8

slfx

>> No.45542  

>>45536
А ты не думал, что выделяешь памяти только sizeof(GLFLT), а пишешь в sizeof(GLFLT)+1?

>> No.45543  

>>45539
да, всего лишь sizeof(float). зачем там в семь раз больше памяти?
>>45542
почему это?

>> No.45544  

>>45543

>зачем там в семь раз больше памяти?
>New size for the memory block, in bytes.
>New size for the memory block

потому что я долбоёб, всё понятно. а я был уверен, что это размер добавляемой памяти.

>> No.45545  

>>45543
Страница кончается? И вообще, что ты хотел сделать этим кодом? Я думаю итог можно было понять сразу.

>> No.45546  

Алсо откорй для себя valgrind.

>> No.45555  
File: 1291776577160.jpg -(180996 B, 560x746) Thumbnail displayed, click image for full size.
180996

кг-куууууун!

внезапно оказалось, что на карточке еее писи шейдеры 1.4. от така хуйня. чем можно заменить
#define GL_GLEXT_PROTOTYPES
#include <GL/gl.h>
#include <GL/glut.h>

p_susan=glCreateProgramObjectARB();
p_nmx=glCreateProgramObjectARB();
v=glCreateShaderObjectARB(GL_VERTEX_SHADER_ARB);
f_susan=glCreateShaderObjectARB(GL_FRAGMENT_SHADER_ARB);
f_nmx=glCreateShaderObjectARB(GL_FRAGMENT_SHADER_ARB);
const char *vs=textfileread("/_documents/documents/workspace/cv/src/vs.c");
const char *ps_susan=textfileread("/_documents/documents/workspace/cv/src/ps_susan.c");
const char *ps_nmx=textfileread("/_documents/documents/workspace/cv/src/ps_nms.c");
glShaderSourceARB(v,1,&vs,NULL);
glShaderSourceARB(f_susan,1,&ps_susan,NULL);
glShaderSourceARB(f_nmx,1,&ps_nmx,NULL);
glCompileShaderARB(v);
glCompileShaderARB(f_susan);
glCompileShaderARB(f_nmx);
glAttachObjectARB(p_susan,v);
glAttachObjectARB(p_susan,f_susan);
glAttachObjectARB(p_nmx,v);
glAttachObjectARB(p_nmx,f_nmx);
glLinkProgramARB(p_susan);
glLinkProgramARB(p_nmx);
glUseProgramObjectARB(p_susan);
glUniform1iARB(glGetUniformLocationARB(p_susan,"tex"),0);

а то в этом виде они вообще не компилируются и не линкуются.

>> No.45576  

>>45555
У меня везде по-прежнему вот так:
>>36148
Потому что в состав ядра шейдеры включены начиная с 2.0, а требовать обязательной поддержки у всех 2й версии неправильно, если достаточно наличия расширений по поводу шейдеров. А ты не провел инициализацию экстеншенов, в 1.4 они ещё не включены в ядро.

Только GL_VERSION_1_2 из того кода я убрал.

И да, расширение вещь крайне мерзкая, хоть и даёт определённые преимущества.

>> No.45586  

>>45576
#include <glh/glh_extensions.h>

это часть nividia sdk. как он у тебя под линуксом так рабатает?

>> No.45592  

>>45586
Тогда понятно назначение этой жести в начале файла:
#ifndef _WIN32
#include "../glx.h"
#include "../glxext.h"

PFNGLGENPROGRAMSARBPROC glGenProgramsARB = NULL;
PFNGLDELETEPROGRAMSARBPROC glDeleteProgramsARB = NULL;
PFNGLBINDPROGRAMARBPROC glBindProgramARB = NULL;
PFNGLISPROGRAMARBPROC glIsProgramARB = NULL;

PFNGLPROGRAMSTRINGARBPROC glProgramStringARB = NULL;
PFNGLGETPROGRAMIVARBPROC glGetProgramivARB = NULL;

PFNGLVERTEXATTRIB4FARBPROC glVertexAttrib4fARB = NULL;
PFNGLVERTEXATTRIB4FVARBPROC glVertexAttrib4fvARB = NULL;
PFNGLVERTEXATTRIB3FARBPROC glVertexAttrib3fARB = NULL;
PFNGLVERTEXATTRIB3FVARBPROC glVertexAttrib3fvARB = NULL;

PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB = NULL;
PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB = NULL;
PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB = NULL;

PFNGLPROGRAMLOCALPARAMETER4FARBPROC glProgramLocalParameter4fARB = NULL;
PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glProgramLocalParameter4fvARB = NULL;

PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glGetProgramLocalParameterfvARB = NULL;

PFNGLPROGRAMENVPARAMETER4FARBPROC glProgramEnvParameter4fARB = NULL;
PFNGLPROGRAMENVPARAMETER4FVARBPROC glProgramEnvParameter4fvARB = NULL;

PFNGLGETPROGRAMENVPARAMETERFVARBPROC glGetProgramEnvParameterfvARB = NULL;

PFNGLDELETEOBJECTARBPROC glDeleteObjectARB = NULL;
PFNGLGETHANDLEARBPROC glGetHandleARB = NULL;
PFNGLDETACHOBJECTARBPROC glDetachObjectARB = NULL;
PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB = NULL;
PFNGLSHADERSOURCEARBPROC glShaderSourceARB = NULL;
PFNGLCOMPILESHADERARBPROC glCompileShaderARB = NULL;
PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB = NULL;
PFNGLATTACHOBJECTARBPROC glAttachObjectARB = NULL;
PFNGLLINKPROGRAMARBPROC glLinkProgramARB = NULL;
PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARB = NULL;
PFNGLVALIDATEPROGRAMARBPROC glValidateProgramARB = NULL;
PFNGLUNIFORM1FARBPROC glUniform1fARB = NULL;
PFNGLUNIFORM2FARBPROC glUniform2fARB = NULL;
PFNGLUNIFORM3FARBPROC glUniform3fARB = NULL;
PFNGLUNIFORM4FARBPROC glUniform4fARB = NULL;
PFNGLUNIFORM1IARBPROC glUniform1iARB = NULL;
PFNGLUNIFORM2IARBPROC glUniform2iARB = NULL;
PFNGLUNIFORM3IARBPROC glUniform3iARB = NULL;
PFNGLUNIFORM4IARBPROC glUniform4iARB = NULL;
PFNGLUNIFORM1FVARBPROC glUniform1fvARB = NULL;
PFNGLUNIFORM2FVARBPROC glUniform2fvARB = NULL;
PFNGLUNIFORM3FVARBPROC glUniform3fvARB = NULL;
PFNGLUNIFORM4FVARBPROC glUniform4fvARB = NULL;
PFNGLUNIFORM1IVARBPROC glUniform1ivARB = NULL;
PFNGLUNIFORM2IVARBPROC glUniform2ivARB = NULL;
PFNGLUNIFORM3IVARBPROC glUniform3ivARB = NULL;
PFNGLUNIFORM4IVARBPROC glUniform4ivARB = NULL;
PFNGLUNIFORMMATRIX2FVARBPROC glUniformMatrix2fvARB = NULL;
PFNGLUNIFORMMATRIX3FVARBPROC glUniformMatrix3fvARB = NULL;
PFNGLUNIFORMMATRIX4FVARBPROC glUniformMatrix4fvARB = NULL;
PFNGLGETOBJECTPARAMETERFVARBPROC glGetObjectParameterfvARB = NULL;
PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB = NULL;
PFNGLGETINFOLOGARBPROC glGetInfoLogARB = NULL;
PFNGLGETATTACHEDOBJECTSARBPROC glGetAttachedObjectsARB = NULL;
PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB = NULL;
PFNGLGETACTIVEUNIFORMARBPROC glGetActiveUniformARB = NULL;
PFNGLGETUNIFORMFVARBPROC glGetUniformfvARB = NULL;
PFNGLGETUNIFORMIVARBPROC glGetUniformivARB = NULL;
PFNGLGETSHADERSOURCEARBPROC glGetShaderSourceARB = NULL;

PFNGLBINDATTRIBLOCATIONARBPROC glBindAttribLocationARB = NULL;
PFNGLGETACTIVEATTRIBARBPROC glGetActiveAttribARB = NULL;
PFNGLGETATTRIBLOCATIONARBPROC glGetAttribLocationARB = NULL;
PFNGLGETVERTEXATTRIBFVARBPROC glGetVertexAttribfvARB = NULL;

int InitShaderExtensions()
{

Display * display = glXGetCurrentDisplay ();
if(!strstr ( glXQueryExtensionsString ( display, DefaultScreen ( display )),"glCompileShaderARB" ))

{

ErrorBox("Can`t initialise shader extensions! Could not continue without shader support");
return -1;

}

glGenProgramsARB                = (PFNGLGENPROGRAMSARBPROC)               getProcAddress ( "glGenProgramsARB" );
glDeleteProgramsARB = (PFNGLDELETEPROGRAMSARBPROC) getProcAddress ( "glDeleteProgramsARB" );
glBindProgramARB = (PFNGLBINDPROGRAMARBPROC) getProcAddress ( "glBindProgramARB" );
glIsProgramARB = (PFNGLISPROGRAMARBPROC) getProcAddress ( "glIsProgramARB" );
glProgramStringARB = (PFNGLPROGRAMSTRINGARBPROC) getProcAddress ( "glProgramStringARB" );
glGetProgramivARB = (PFNGLGETPROGRAMIVARBPROC) getProcAddress ( "glGetProgramivARB" );
glVertexAttrib4fARB = (PFNGLVERTEXATTRIB4FARBPROC) getProcAddress ( "glVertexAttrib4fARB" );
glVertexAttrib4fvARB = (PFNGLVERTEXATTRIB4FVARBPROC) getProcAddress ( "glVertexAttrib4fvARB" );
glVertexAttrib3fARB = (PFNGLVERTEXATTRIB3FARBPROC) getProcAddress ( "glVertexAttrib3fARB" );
glVertexAttrib3fvARB = (PFNGLVERTEXATTRIB3FVARBPROC) getProcAddress ( "glVertexAttrib3fvARB" );
glVertexAttribPointerARB = (PFNGLVERTEXATTRIBPOINTERARBPROC) getProcAddress ( "glVertexAttribPointerARB" );
glEnableVertexAttribArrayARB = (PFNGLENABLEVERTEXATTRIBARRAYARBPROC) getProcAddress ( "glEnableVertexAttribArrayARB" );
glDisableVertexAttribArrayARB = (PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) getProcAddress ( "glDisableVertexAttribArrayARB" );
glProgramLocalParameter4fARB = (PFNGLPROGRAMLOCALPARAMETER4FARBPROC) getProcAddress ( "glProgramLocalParameter4fARB" );
glProgramLocalParameter4fvARB = (PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) getProcAddress ( "glProgramLocalParameter4fvARB" );
glGetProgramLocalParameterfvARB = (PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC)getProcAddress ( "glGetProgramLocalParameterfvARB" );
glProgramEnvParameter4fARB = (PFNGLPROGRAMENVPARAMETER4FARBPROC) getProcAddress ( "glProgramEnvParameter4fARB" );
glProgramEnvParameter4fvARB = (PFNGLPROGRAMENVPARAMETER4FVARBPROC) getProcAddress ( "glProgramEnvParameter4fvARB" );
glGetProgramEnvParameterfvARB = (PFNGLGETPROGRAMENVPARAMETERFVARBPROC) getProcAddress ( "glGetProgramEnvParameterfvARB" );
glDeleteObjectARB = (PFNGLDELETEOBJECTARBPROC) getProcAddress ( "glDeleteObjectARB" );
glGetHandleARB = (PFNGLGETHANDLEARBPROC) getProcAddress ( "glGetHandleARB" );
glDetachObjectARB = (PFNGLDETACHOBJECTARBPROC) getProcAddress ( "glDetachObjectARB" );
glCreateShaderObjectARB = (PFNGLCREATESHADEROBJECTARBPROC) getProcAddress ( "glCreateShaderObjectARB" );
glShaderSourceARB = (PFNGLSHADERSOURCEARBPROC) getProcAddress ( "glShaderSourceARB" );
glCompileShaderARB = (PFNGLCOMPILESHADERARBPROC) getProcAddress ( "glCompileShaderARB" );
glCreateProgramObjectARB = (PFNGLCREATEPROGRAMOBJECTARBPROC) getProcAddress ( "glCreateProgramObjectARB" );
glAttachObjectARB = (PFNGLATTACHOBJECTARBPROC) getProcAddress ( "glAttachObjectARB" );
glLinkProgramARB = (PFNGLLINKPROGRAMARBPROC) getProcAddress ( "glLinkProgramARB" );
glUseProgramObjectARB = (PFNGLUSEPROGRAMOBJECTARBPROC) getProcAddress ( "glUseProgramObjectARB" );
glValidateProgramARB = (PFNGLVALIDATEPROGRAMARBPROC) getProcAddress ( "glValidateProgramARB" );
glUniform1fARB = (PFNGLUNIFORM1FARBPROC) getProcAddress ( "glUniform1fARB" );
glUniform2fARB = (PFNGLUNIFORM2FARBPROC) getProcAddress ( "glUniform2fARB" );
glUniform3fARB = (PFNGLUNIFORM3FARBPROC) getProcAddress ( "glUniform3fARB" );
glUniform4fARB = (PFNGLUNIFORM4FARBPROC) getProcAddress ( "glUniform4fARB" );
glUniform1iARB = (PFNGLUNIFORM1IARBPROC) getProcAddress ( "glUniform1iARB" );
glUniform2iARB = (PFNGLUNIFORM2IARBPROC) getProcAddress ( "glUniform2iARB" );
glUniform3iARB = (PFNGLUNIFORM3IARBPROC) getProcAddress ( "glUniform3iARB" );
glUniform4iARB = (PFNGLUNIFORM4IARBPROC) getProcAddress ( "glUniform4iARB" );
glUniform1fvARB = (PFNGLUNIFORM1FVARBPROC) getProcAddress ( "glUniform1fvARB" );
glUniform2fvARB = (PFNGLUNIFORM2FVARBPROC) getProcAddress ( "glUniform2fvARB" );
glUniform3fvARB = (PFNGLUNIFORM3FVARBPROC) getProcAddress ( "glUniform3fvARB" );
glUniform4fvARB = (PFNGLUNIFORM4FVARBPROC) getProcAddress ( "glUniform4fvARB" );
glUniform1ivARB = (PFNGLUNIFORM1IVARBPROC) getProcAddress ( "glUniform1ivARB" );
glUniform2ivARB = (PFNGLUNIFORM2IVARBPROC) getProcAddress ( "glUniform2ivARB" );
glUniform3ivARB = (PFNGLUNIFORM3IVARBPROC) getProcAddress ( "glUniform3ivARB" );
glUniform4ivARB = (PFNGLUNIFORM4IVARBPROC) getProcAddress ( "glUniform4ivARB" );
glUniformMatrix2fvARB = (PFNGLUNIFORMMATRIX2FVARBPROC) getProcAddress ( "glUniformMatrix2fvARB" );
glUniformMatrix3fvARB = (PFNGLUNIFORMMATRIX3FVARBPROC) getProcAddress ( "glUniformMatrix3fvARB" );
glUniformMatrix4fvARB = (PFNGLUNIFORMMATRIX4FVARBPROC) getProcAddress ( "glUniformMatrix4fvARB" );
glGetObjectParameterfvARB = (PFNGLGETOBJECTPARAMETERFVARBPROC) getProcAddress ( "glGetObjectParameterfvARB" );
glGetObjectParameterivARB = (PFNGLGETOBJECTPARAMETERIVARBPROC) getProcAddress ( "glGetObjectParameterivARB" );
glGetInfoLogARB = (PFNGLGETINFOLOGARBPROC) getProcAddress ( "glGetInfoLogARB" );
glGetAttachedObjectsARB = (PFNGLGETATTACHEDOBJECTSARBPROC) getProcAddress ( "glGetAttachedObjectsARB" );
glGetUniformLocationARB = (PFNGLGETUNIFORMLOCATIONARBPROC) getProcAddress ( "glGetUniformLocationARB" );
glGetActiveUniformARB = (PFNGLGETACTIVEUNIFORMARBPROC) getProcAddress ( "glGetActiveUniformARB" );
glGetUniformfvARB = (PFNGLGETUNIFORMFVARBPROC) getProcAddress ( "glGetUniformfvARB" );
glGetUniformivARB = (PFNGLGETUNIFORMIVARBPROC) getProcAddress ( "glGetUniformivARB" );
glGetShaderSourceARB = (PFNGLGETSHADERSOURCEARBPROC) getProcAddress ( "glGetShaderSourceARB" );
glBindAttribLocationARB = (PFNGLBINDATTRIBLOCATIONARBPROC) getProcAddress ( "glBindAttribLocationARB" );
glGetActiveAttribARB = (PFNGLGETACTIVEATTRIBARBPROC) getProcAddress ( "glGetActiveAttribARB" );
glGetAttribLocationARB = (PFNGLGETATTRIBLOCATIONARBPROC) getProcAddress ( "glGetAttribLocationARB" );
glGetVertexAttribfvARB = (PFNGLGETVERTEXATTRIBFVARBPROC) getProcAddress ( "glGetVertexAttribfvARB" );
return 1;

}
#endif

Там много лишних экстеншенов инициализируется, сам вырежешь ненужные тебе.

>> No.45594  

>>45592

>#ifndef _WIN32
>#ifndef
>n

Неудивительно что я не те куски сначала вырезал.

>> No.45595  
File: 1291822862329.png -(2479 B, 512x512) Thumbnail displayed, click image for full size.
2479

>>45592
это у тебя где вообще? что там перед ним? запости полнй код, что ли.

>> No.45597  

>>45592>>45594
и какие им библиотеки нужны?

>> No.45598  

>>45592
у тебя же этот модуль инициализации отдельно, так? выложи его целиком, а то нихуя не понятно же. в чём ты проекты компилируешь?

>> No.45601  

блядская куча костылей, нихуя у меня не работает.

>> No.45603  
File: 1291826518742.jpg -(183610 B, 600x762) Thumbnail displayed, click image for full size.
183610

кг-кун, куда ты пропал? мне бы именно сейчас твоя работающая инициализация с правильно подключёнными библиотеками просто пиздецки не помешала бы.

>> No.45613  
File: 1291828856833.jpg -(201422 B, 850x428) Thumbnail displayed, click image for full size.
201422

>>45603
Вычищал быдлокод же! Держи:
http://rghost.ru/3531764/private/79406d140b82b83fd426bad389cb643a
пароль nowere

Ты же попросил целиком, вот тебе вместе с обёрткой в xml

>> No.45614  

>>45613
Отпишись как скачаешь, удалю. Всё равно быдлокод :3

>> No.45616  
File: 1291829435924.jpg -(158074 B, 850x860) Thumbnail displayed, click image for full size.
158074

>>45613
спасибо, скачал.
тащемто быдлокод.. быдлокод ты ещё мой не видел, так что тебе стесняться не перед кем, лол.

>> No.45635  

http://stackoverflow.com/questions/4176963/what-library-do-you-use-for-matrix-calculations-on-cuda

http://deeplearning.net/software/theano/tutorial/using_gpu.html

>> No.45643  

>>45635
Какая CUDA на железе OpenGL 1.4 ? Её поддерживают только видеокарты sm4.0, начиная с gf8xxx у нвидиа.

>> No.45649  
File: 1291835536152.jpg -(69818 B, 1280x770) Thumbnail displayed, click image for full size.
69818

>>45635
к сожалению это >>45643

зато там eigen я какой-то увидел. уже кочаю!

>> No.45710  
File: 1291859394984.jpg -(201410 B, 500x500) Thumbnail displayed, click image for full size.
201410

после ночных стенаний у меня появилась законченая идея, что же надо делать, но есть один вопрос:

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

>> No.45734  

>>45710

>как происходит интерполяция и смешение при взятии велечины из текстуры.

Интерполяция переменных (в том числе координат текстуры) между вершинами в твоём случае линейная. При чтении пикселя из текстуры так сказать между хранящимися в ней пикселями интерполяция зависит от выбранной фильтрации. Можно выставить линейную, квадратичную, вообще отключить, и перебрать все варианты с мипмапами и анизотропией. Я тебе выше писал режимы фильтрации.

>> No.45842  
File: 1291945397731.jpg -(711121 B, 1936x1309) Thumbnail displayed, click image for full size.
711121

кг-кун, у тебя есть ещё какая-нибудь инфа по способам использовать время передачи из буфера в память, вроде
>>44705

>вот быстрый:
>http://www.comp.nus.edu.sg/~ashwinna/docs/FBO_Readback_using_PBO.pdf

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

>> No.45856  

>>45842

>Поскольку OpenGL построен исходя из модели клиент-сервер, то возвращение управления из очередной команды OpenGL (например, glDraw*) еще не говорит ни о чем, кроме того, что Ваша команды была добавлена в командный буфер (вполне возможно она еще даже не начала выполняться на GPU). Поэтому большинство команд являются асинхронными, т.е. они просто добавляют команды в буфер команд и немедленно возвращают управление клиенту.

Вот тут есть по синхронизации:
http://steps3d.narod.ru/tutorials/sync-tutorial.html
Обычно всё сводится к равномерности распределения нагрузки и построению алгоритмов, которые позволили бы хоть со значительно большими затратами, но с меньшей передачей данных. Видеокарта будет терпеть любые издевательства до тех пор, пока ты не упираешься в шину при передаче данных.

>> No.45978  
File: 1292043134325.jpg -(33222 B, 399x299) Thumbnail displayed, click image for full size.
33222

почему я такой ёбаный дурак? весь день вчера пытался понять, что же получается при преобразовании фурье в плане кросс-корреляции. преобразование фурье. ну блядь, ФУРЬЕ, РАЗЛОЖЕНИЕ ФУРЬЕ ЁБ МЕНЯ ОБ СТЕНУ. оно массив корреляций от всех возможных сдвигов и возвращает, это же очевидно, как можно быть таким тупым.

>> No.46557  
File: 1292542855998.jpg -(290328 B, 707x1000) Thumbnail displayed, click image for full size.
290328

>>46078
Для этого есть GL_TEXTURE_1D_ARRAY_EXT
http://steps3d.narod.ru/tutorials/texture-array-tutorial.html

Но лучше забить на фильтрацию или написать свою.

>> No.46560  

>>46557

>Но лучше забить на фильтрацию или написать свою.

Спорное утверждение, серьёзный повод не использовать разве что в том, что этот экстеншн поддерживается только на gf8xxx и выше.

>> No.47609  
File: 1293820644461.jpg -(551048 B, 850x566) Thumbnail displayed, click image for full size.
551048

>>47608
То есть? Ты при создании текстуры указываешь размер когда выделяешь память.
>>47607
Можно передать постоянной длины и передать ещё одним интеджером длину. Но если длина большая, лучше текстурой. Хочу заметить, что интеджеры есть только начиная с gf8xxx, на всех до только эмуляция через флоаты.
Подробнее:
http://steps3d.narod.ru/tutorials/texture-int-tutorial.html

>> No.47613  

>>47610
Нет. Но никто не мешает передать через через uniform-переменные. Ещё почитай про http://steps3d.narod.ru/tutorials/bindable-uniform-tutorial.html

>> No.47618  
File: 1293828525857.jpg -(209783 B, 1000x750) Thumbnail displayed, click image for full size.
209783

С новым годом:
http://http.download.nvidia.com/developer/GPU_Gems_2/CD/Content/40.zip

И книжки почитать:

Canny, J. F. 1986. "A Computational Approach to Edge Detection." IEEE Transactions on Pattern Analysis and Machine Intelligence 8(6)

Fung, James, Steve Mann, and Chris Aimone. 2005. "OpenVIDIA: Parallel GPU Computer Vision." In Proceedings of the ACM Multimedia 2005

Harris, Chris, and Mike Stephens. 1988. "A Combined Corner and Edge Detector." In Proceedings of Fourth Alvey Vision Conference

Sinha, Sudipta N., Jan-Michael Frahm, Marc Pollefeys, and Yakup Genc. 2006. "GPU-Based Video Feature Tracking and Matching." Technical Report 06-012, Department of Computer Science, UNC Chapel Hill.

Tomasi, C., and T. Kanade. 1991. "Detection and Tracking of Point Features." Technical Report CMU-CS-91-132, Carnegie Mellon University.

Trajkovic, M., and M. Hedley. 1998. "Fast Corner Detection." Image and Vision Computing

>> No.48180  
File: 1294280477656.png -(108586 B, 560x202) Thumbnail displayed, click image for full size.
108586

>>48164

>кг-кун, а в пиксельном шейдере сравнение двух величин дорого стоит?

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

>а обращение к величине в текстуре?

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

Для решения подобных вопросов нвидиа выпустила http://developer.nvidia.com/object/gdebugger.html но он платный и не такой удобный как его бесплатный аналог для Direct3D http://www.youtube.com/watch?v=UdDfvq0cL04

>> No.48362  

>>48361

> весь день вылавливал один единственный баг

Это далеко не предел.

>> No.48371  

>>48361

>получается весь день вылавливал один единственный баг.

Тебе похоже пригодился бы этот gDEBugger.
>>48362
Есть такое, проблемы с opengl так просто не обнаружить даже зная место в коде, в котором они возникают. Всё, что есть - glGetError(), и пару подобных для буферов. Причём тут как в квантах, результат измерения может зависеть от измерения. Потому что эта команда своим вызовом приостанавливает выполнение на видеокарте, так что ловить с её помощью всякие occlusion qerry и arb_sync - гиблое дело.

>> No.48591  
File: 1294539182867.jpg -(59400 B, 617x833) Thumbnail displayed, click image for full size.
59400

>>48590
Свой напиши, делов на 10 минут.

>> No.48890  
File: 1294669135753.jpg -(260446 B, 850x531) Thumbnail displayed, click image for full size.
260446

>>48866
Для интерполяции и экстраполяции векторов удобно пользоваться кватернионами (гиперкомплексные числа). Трансформацию векторов представляют в виде вращения и переноса, вращение задаётся единичным кватернионом а перемещение вектором.

>> No.48891  

>>48596
попробуй использование стека заменить рекурсией

>> No.48894  
File: 1294673884456.png -(919051 B, 850x1210) Thumbnail displayed, click image for full size.
919051

>>48859
http://www.gamedev.ru/code/articles/?id=4215&page=3

>У кватернионов же есть замечательное свойство, сумма двух кватернионов q*s и q'*s' (s ,s' – скаляры) даст кватернион, который как раз и принадлежит плоскости вращения по кратчайшей дуге между q и q'.

А на первых двух страницах подробно разжевано что такое кватернионы.

>> No.49078  

>>49073
Не совершать их при составлении этой структуры. Пусть лучше у тебя 90% времени занимают мысли о составлении этой структуры, чем о ее исправлении.

>> No.49079  

>>49073
Люркай, что такое защитное программирование.
Пихай везде ассерты (в том числе статические), не ломай статическую типизацию, чтобы компилятор искал ошибки за тебя. Правильно обрабатывай ошибки.

>> No.49114  
File: 1294859625899.jpg -(370100 B, 1000x950) Thumbnail displayed, click image for full size.
370100

>>49079

>Пихай везде ассерты

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

>Пихай везде

нарушается, вызывая раздражение и ненависть к писавшему код.

>не ломай статическую типизацию

Но только не в ущерб абстрактности. Вот что лучше, безличный void* или целая стена перегрузок, в которые ещё надо добавлять новые при добавлении новых сущностей? Так же бывает неудобно ради использования одного хедера инклудить десяток других, поэтому в закрытых членах класса совсем левые сущности мне лично более удобно тем же void* описать.

>Правильно обрабатывай ошибки.

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

>> No.49115  

>>49114

>Но только не в ущерб абстрактности. Вот что лучше, безличный void* или целая стена перегрузок, в которые ещё надо добавлять новые при добавлении новых сущностей? Так же бывает неудобно ради использования одного хедера инклудить десяток других, поэтому в закрытых членах класса совсем левые сущности мне лично более удобно тем же void* описать.

Если мы говорим о C++, то написанное вами - полная хуйня.

>Ими пользоваться надо когда дейстительно надо.

И что значит "действительно надо", если никогда не знаешь какие прекондишены нарушаться в процессе отладки?

>> No.49117  

>>49115
нарушатся*

>> No.49123  
File: 1294863726620.jpg -(173372 B, 596x800) Thumbnail displayed, click image for full size.
173372

>>49115
Главное зло assert-во в том, что они сразу вызывает abort(), вместо перехода к корректному завершению. Кто освободит память в сложных ситуациях? Что если программа работает с устройством, инициализирует его, а потом посередине выплёвывает ассёршн? Если программа использует клиент-серверные апи (внезапно, OpenGL), после её вылета тоже немало ошмётков останется.
Я достаточно наебался с чужим кодом, где ассерты в деструкторах или рантайм различается при NDEBUG, чтобы удостовериться в том, что

>Пихай везде

это неправильный и вредный совет. Но я не против того, что ассерты использовать можно и нужно. Главное, без фанатизма.

>Если мы говорим о C++, то написанное вами - полная хуйня.

Не поленитесь обосновать.

>> No.49311  

>>49310
http://web.cs.wpi.edu/~cs1005/common/floatformats.html

>> No.49318  

>>49123

>Главное зло assert-во в том, что они сразу вызывает abort(), вместо перехода к корректному завершению. Кто освободит память в сложных ситуациях? Что если программа работает с устройством, инициализирует его, а потом посередине выплёвывает ассёршн? Если программа использует клиент-серверные апи (внезапно, OpenGL), после её вылета тоже немало ошмётков останется.

Так они и предназначены для того, чтобы валить программу. Это для отладки, а не для релиза, какбэ.

>Не поленитесь обосновать.
>Вот что лучше, безличный void* или целая стена перегрузок

Лучше не то и не другое. Есть еще тэмплэйты, если уж так нравится обобщенность. Да и вообще, умную архитектуру никто не отменял. А архитектуру, основанную на void'ах (у которых энтропия максимальна и никаких проверок нет), умной назвать язык не поднимается.

>поэтому в закрытых членах класса совсем левые сущности мне лично более удобно тем же void* описать

открой для себя pimpl

>> No.49341  
File: 1295109810489.png -(1346688 B, 900x1375) Thumbnail displayed, click image for full size.
1346688

>>49318

>Так они и предназначены для того, чтобы валить программу. Это для отладки, а не для релиза, какбэ.

Ну да, это оправдывает строчку из сопроводительной литературы при ассёршенах необходимо перезагружать систему. Очень удобно разрабатывать программу с такими особенностями.
И к сожалению, у некоторых

>рантайм различается при NDEBUG

так что переход к релизной версии иногда затягивается. Как они этого добились, я не вникал.

>Есть еще тэмплэйты

Само собой, только иногда с ними мой код становится не многим понятнее stl, но это малое зло по сравнению с преимуществами.

>открой для себя pimpl

Это так теперь называют паттерн Bridge?

>> No.49435  

>>49341

>Это так теперь называют паттерн Bridge?

Нет, это идиома языка C++, а не паттерн.

Написать свой assert с необходимым тебе поведением - минутное дело.

>только иногда с ними мой код становится не многим понятнее stl

С каких пор stl - верх непонятности? С void* тут и там твой код гораздо более понятный?

>> No.49442  
File: 1295177300484.jpg -(411789 B, 989x900) Thumbnail displayed, click image for full size.
411789

>>49435

>Написать свой assert с необходимым тебе поведением - минутное дело.

По мне так гораздо лучше иметь привычку обрабатывать все ситуации по-нормальному сразу, по мере написания. Возможно, где-то будет лишняя проверка, но лучше перестраховаться.

>С каких пор stl - верх непонятности?

Глупо спорить о его читаемости.

>С void* тут и там твой код гораздо более понятный?

Сколько тебе лет, сынок? Почему ты всё делишь только на чёрное и белое?

>> No.49445  

>>49442

>По мне так гораздо лучше иметь привычку обрабатывать все ситуации по-нормальному сразу, по мере написания. Возможно, где-то будет лишняя проверка, но лучше перестраховаться.

Само собой, обычные ошибки нужно обрабатывать другими способами. Но фатальные ошибочные ситуации (которые "не могут" произойти по логике программы) можно и assert'ами, на то они и фатальные. Просто нужно четко отделить одно от другого.

>Глупо спорить о его читаемости.

А что не так в читаемости? Если ты о всяких std::bind1st и прочей лабуды из <functional>, то я соглашусь, что эти вещи не особо практичны. Правда есть boost, где подобные инструменты реализованы просто прекрасно, может, поэтому я стандартными и не пользуюсь - не знаю.

>Сколько тебе лет, сынок?

21. Очень круто, что ты перешел на личности. Ты, наверное, принимаешь отдельные мои реплики на свой счет, очень жаль.

>Почему ты всё делишь только на чёрное и белое?

Это, я так понял, к тому, что void'ы - не "черное", а "серое" средство?
Я все-таки склоняюсь к черному и применяю это только в критических ситуациях. Применял в серьезном коде только 1 раз вместе с rtti (архитектура загнала в угол) и то, совесть замучала и я переписал все с использованием boost::mpl + boost::fusion.
И да, я готов выслушать плюсы использования void* перед введением интерфейсов и перед использованием тэмплэйтного метапрограммирования. Я даже 1 плюс могу подсказать: не нужно много париться и думать, нашлепал везде кастов, всего-то делов.

>> No.49452  

>>49446
Если у тебя возникают такие вопросы, то тебе он еще не нужен.

>> No.49457  
File: 1295185278244.jpg -(30574 B, 500x360) Thumbnail displayed, click image for full size.
30574

>>49446

>Это, я так понял, к тому, что void'ы - не "черное", а "серое" средство?

Это скорее относится к

>С void* тут и там

Я к тому, что это не является для меня единственным или любимым решением. Где-то можно избежать, где-то удобнее оставить. При написании DirectX так и поступили. Для тебя важнее всего типизация, я понял.

>И да, я готов выслушать плюсы использования void* перед введением интерфейсов и перед использованием тэмплэйтного метапрограммирования.

Очень удобно использовать безличный указатель при оперировании с данными как с куском памяти, когда совершенно неважно что внутри, есть только размер и указатель, надо только это отправить/скопировать/записать.

>Само собой, обычные ошибки нужно обрабатывать другими способами. Но фатальные ошибочные ситуации (которые "не могут" произойти по логике программы) можно и assert'ами, на то они и фатальные. Просто нужно четко отделить одно от другого.

Ну вот, уже не

>Пихай везде ассерты

И всё равно, я больше склоняюсь к тому, что лучше делать проверки, потому что

>которые "не могут" произойти по логике программы

как правило всё равно происходят, и не факт что ты их отловишь до релиза.

>на то они и фатальные.

В случае вылета разве дебагер тебе не расскажет подробную цепочку событий и с чего всё началось?

>21. Очень круто, что ты перешел на личности.

Прости за выпад, мне искренне интересно с тобой общаться. Тебе преподают программирование или самоучка? Дело в том, что у нас когда-то был больше идеологически упор на С, чем на С++, несмотря на всё ооп, а большинство с кем я общаюсь ИРЛ начисто лишены (увы) хоть какого-то осознания.

>> No.49458  

>>49457

>Очень удобно использовать безличный указатель при оперировании с данными как с куском памяти, когда совершенно неважно что внутри, есть только размер и указатель, надо только это отправить/скопировать/записать.

Ну я не об этом. Конечно, если нужно оперировать памятью в стиле (memcpy, memset, и т.д.) или если нам важен сам формат данных в памяти (например, мы собиремся грузить текстуру через какое-то gapi, которое требует сырых данных), то, естественно, тут должнен быть какой-то указатель (но лучше unsigned char*, чем void*, кстати) и никак надежно спрятать эти данные под интерфейс не удасться (разве что потоки, но они могут быть неуместны). Я говорил о том, что в коде по возможности не должно быть каких-то кастов из void* в YourClass*. Ведь это начисто убивает типизацию и повышает энтропию системы.

>Ну вот, уже не "пихай везде ассерты"

Я, пожалуй, недостаточно точно выразился. Имеется в виду: "везде, где можно и нужно".

>как правило всё равно происходят, и не факт что ты их отловишь до релиза.

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

>В случае вылета разве дебагер тебе не расскажет подробную цепочку событий и с чего всё началось?

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

>Дело в том, что у нас когда-то был больше идеологически упор на С, чем на С++, несмотря на всё ооп, а большинство с кем я общаюсь ИРЛ начисто лишены (увы) хоть какого-то осознания.

У меня не преподавали даже С, правда преподавали яву и, внезапно, асм. Да, самоучка. Не верю в то, что преподаватели, которые не являются практикующими (в данный момент) программистами, могут научить полезному в программировании (кроме основ и алгоритмической базы). А практикующие программисты преподавателями не становятся, вот и имеем то, что имеем.

>> No.49648  

>>49642
Каково рода ошибка?

>> No.49700  

>>49642
Может быть в этом?

x=(int)floor((((float)y)*dir(0)+0.5f))+(int)floor((((float)x)*normal(0)+0.5f));
y=(int)floor((((float)y)*dir(1)+0.5f))+(int)floor((((float)x)*normal(1)+0.5f));
>> No.49799  

>>49700

x=((int)(floor((((float)(y))*(dir(0))+(0.5f))))+((int)(floor((((float)(x))*(normal(0))+(0.5f))))));
y=((int)(floor((((float)(y))*(dir(1))+(0.5f))))+((int)(floor((((float)(x))*(normal(1))+(0.5f))))));

Не удержался.

>> No.49858  

Адское приведение типов.

Усичан, я тут ебусь с одним диалектом C. Вопрос такой: хочу указатель на структуру, которая вложена в другую структуру.
Примерно так:
struct ATime
{
//бла-бла-бла
};

struct Limits
{
struct ATime MDTime;
struct ATime MMTime
//бла-бла-бла
};

struct Limits A;

//бла-бла-бла... присваивание данных

//собственно попытка получить указатель
foo(&(A.MMTime));

Я неправильно написал или это проблемы ебаного диалекта?

>> No.49860  

>>49858
А что компилятор пишет?

>> No.49862  

>>49860
Завтра напишу. Все осталось на работе, воспроизвожу по памяти.

>> No.49867  

>>49858
Скорее всего компилятора, поскольку gcc такое скушал:

void foo(void* arg)
{
};
int main(void)
{
struct ATime
{
int something;
};
struct Limits
{
struct ATime MDTime;
struct ATime MMTime;
};
struct Limits A;
foo(&(A.MMTime));
};
>> No.49882  

>>49867
Ну я так и думал. Гребаный диалект. Хорошо, что пока все его засады удавалось обойти.

>> No.49963  

>>49939
Тебе про движение правильно советовали. Статическую картинку мозг воспринимает только благодаря огромной базе данных. Основные формы и расстояния проще распознавать в движении по относительному изменению.

>> No.49966  

>>49964
Нет, можно строить предположения исходя из разностей картинки. В этом нам помогает вестибулярный аппарат.

>> No.51483  
File: 1296585280745.png -(422786 B, 999x500) Thumbnail displayed, click image for full size.
422786

так, работу с контурами нужно будет переписать под волновое изъятие контура, тогда можно будет побороть шумы. возможно в этом есть потенциал.

>> No.51485  
File: 1296585419477.jpg -(659276 B, 1000x800) Thumbnail displayed, click image for full size.
659276

http://ocrai.narod.ru/vectory.html
например

>> No.51488  

1. большая часть манги имеет печатные шрифты.
2. печатные шрифты распознаются идеально.
3. скачиваем тессеракт + японскую языковую базу.
4. скармливаем результат тессеракта гуглотранслейту.
5. вставляем распознаный текст на место японского текста(тессеракт хранит позицию распознанного текста)
6. ???
7. БЕСКОНЕЧНАЯ МАНГА.

>> No.51494  
File: 1296586823096.jpg -(251543 B, 450x600) Thumbnail displayed, click image for full size.
251543

>>51488
Гуглтранслейт с японского переводит отвратительно. Боюсь в случае коротких фраз понять их будет довольно сложно. А если еще и имена будут переводиться (ユキ -> снег например), то читать результат будет совсем тяжело.

>> No.51502  
File: 1296588271848.jpg -(122206 B, 791x800) Thumbnail displayed, click image for full size.
122206

>>51496
Попробуй перевести какой-нибудь японский текст гуглтранслейтом, думаю ты поймешь, о чем я.

>> No.51522  

>>51502
Я читаю ранобэ, вн, скармливая их гуглопереводчику. И ещё 5 другим. Смысл понимаю полностью, уже выучил все закорючки и начал учить японский. У тебя наверное недостаточно любви чтобы понять всё это понимать, няша.

>> No.51540  

>>51496

>ты пиратские переводы из начала нулевых помнишь?

Я благодаря ним неплохо подучил английский

>> No.51972  

>>51971
http://www.youtube.com/watch?v=J9HaT23b-xc&feature=related

вот довольно интересный клип, но есть один вопрос- откуда начинать луркать про швы в физических движках? ну, то есть соединение двух конструкций с определённым порогом прочности, потому что пока я везде вижу только физику куч параллелепипедов, а не цельных конструкций.

>> No.51973  
File: 1297136810752.jpg -(561399 B, 1680x1050) Thumbnail displayed, click image for full size.
561399

>>51972
и судя по тому, сколько времени рендэрятся эти симуляции физики, нужно придумать какой-то гибридный решатель, который использует имеющиеся сцены и додумывает нужные переходы.

>> No.51974  
File: 1297143173926.png -(674015 B, 750x1000) Thumbnail displayed, click image for full size.
674015

>>51973
Чем проще будет твой алгоритм решения, тем больше будет погрешность и соответственно менее реалистичным будет результат, но и вычислительных ресурсов будет затрачиваться куда меньше.

>> No.51983  
File: 1297165596377.png -(9884 B, 300x413) Thumbnail displayed, click image for full size.
9884

>>51973

>и судя по тому, сколько времени рендэрятся эти симуляции физики

Доли секунды, если не извращаться с тысячами одновременно взаимодействующих объектами.
Не швы, а связи. По-английски constraint
Для буллета: http://www.bulletphysics.org/mediawiki-1.5.8/index.php/Constraints
Теория: http://www.gamedev.ru/code/articles/?id=4251
http://www.gamedev.ru/code/articles/?id=4182
Симуляция твёрдых тел и жидкостей: http://www.gamedev.ru/code/articles/PositionBasedPhysics

Кстати говоря gDebugger стал бесплатным, можно перестать использовать телепатию при поиски ошибок GL
http://www.gamedev.ru/code/news/gdebugger_free

>> No.52519  
File: 1297515223352.jpg -(347866 B, 1200x950) Thumbnail displayed, click image for full size.
347866

http://rastergrid.com/blog/2011/01/frei-chen-edge-detector/

>> No.52520  

И ещё: http://outliner.codeplex.com/

>> No.52676  

кг-кун, халп!

почему-то под виндой у меня в проекте access violation на
glGenFramebuffersEXT(1,&fb0);, при

//#pragma comment(lib,"fftw/libfftw3-3.lib")

#include"GL/glew.h"
#define _USE_MATH_DEFINES
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include"fftw/fftw3.h"
#include"eigen/Eigen/Core"
#include<opencv/highgui.h>
#define GL_GLEXT_PROTOTYPES
#include"gl.h"
#include"glut.h"
//#include"glsl.h"

USING_PART_OF_NAMESPACE_EIGEN

CvCapture *lcam,*rcam;
IplImage *frame;
GLuint text0,fbtext0,fb0,fbtext1,fb1,p_nmx,p_susan;
GLfloat *textdata;
int GLFLT=sizeof(float),width,height,height0,width0,num=0,inj;//CHAR=sizeof(char),
#define CHAR sizeof(char)
Matrix2f nrotation;

int main(int argc,char** argv)
{

glutInit(&argc,argv);
nrotation<<0,-1,1,0;
width=512;
height=512;
height0=height-4; width0=width-4;
textdata=(GLfloat *)malloc(width*height*GLFLT);
initProgram();
lcam=cvCreateFileCapture("Lena.png");
glutMainLoop();
cvReleaseCapture(&lcam);
cvReleaseCapture(&rcam);
return 0;

}

void initProgram()
{

int test;
GLuint v,f_nmx,f_susan;
glutInitDisplayMode(GLUT_RGBA);
glutInitWindowSize(width,height);
glutInitWindowPosition(40,40);
glutCreateWindow("cv");
glEnable(GL_TEXTURE_2D);
glOrtho(-1,1,-1,1,-1,1);
glGenTextures(1,&fbtext0);
glGenFramebuffers(1,&fb0); //glGenFrame 

и главное, под линуксом всё прекрасно работает, ну только без glew. но без глев экстеншены непонятно как грузить. чзх?

>> No.52681  
File: 1297615873079.jpg -(375815 B, 711x1000) Thumbnail displayed, click image for full size.
375815

>>52676
Вполне логично что у тебя access violation на неинициализированном экстеншене. Я как-то так обычно поступаю:

#ifdef _WIN32
#include "gl/glew.h"
#else
#include "gl/glx.h"
#endif
void* GetExtension(const char* ext_name)
{
#ifdef _WIN32
return (void*)wglGetProcAdress(ext_name);
#else
return (void*)glXGetProcAddressARB((const GLubyte *)ext_name);
#endif
}

Но лучше через glh, он удобнее в том плане что у вендоняш больше проблем с драйверами и экстеншены могут абы как называться, как с EXT_, ARB так и без них, причём в произвольном порядке могут то исчезать то появляться в разных версиях драйверов. Пропущено некоторое количество нецензурной брани в адрес Ати и Интела

>> No.52683  
File: 1297616673360.jpg -(504058 B, 984x1000) Thumbnail displayed, click image for full size.
504058

>>52682
Понятия не имею, никогда не использовал его под линуксом, а в венде одной строчкой работает glh. Если ничего не делать а всё будет, зачем тогда функция wglGetProcAdress? Ещё возможен вариант

>у вендоняш больше проблем с драйверами и экстеншены могут абы как называться, как с EXT_, ARB так и без них, причём в произвольном порядке могут то исчезать то появляться в разных версиях драйверов.

То есть glew может и умеет одной строчкой, но нужных экстеншенов попросту не нашёл. Но я не уверен, я если и пользовался то руками через wglGetProcAdress

>> No.52689  
File: 1297618121710.jpg -(150829 B, 1008x1200) Thumbnail displayed, click image for full size.
150829

>>52685

>glGenFramebuffersEXT=GetExtension("glGenFramebuffersEXT");

Я бы советовал тогда GetExtension("glGenFramebuffers"); а в GetExtension пробовать все 3 варианта с EXT ARB и без. Наверное, всё-таки это лучший вариант.

>а glh не нужно ничего на клиентской машине?

Нет, весь их (быдло)код в хедерах.

Вот простой туториал по расширениям:
http://opengl.gamedev.ru/articles/?id=106

>> No.52691  
File: 1297618620102.jpg -(364605 B, 1358x1358) Thumbnail displayed, click image for full size.
364605

>>52687

>glActiveTexture

Раньше он назывался glActiveTextureARB и это очень себе экстеншн. Не забывай что у вендоняш по дефолту OpenGL 1.0 и чтобы получить все glActiveTexture и прочие без abr и ext надо инициализировать GL_VERSION_1_2(для остальных старше), только это плохой тон - целевое железо может не поддерживать целиком 1.2 но при этом поддерживать нужные расширения, вплоть до того что новые карточки ати нагло врут что не держат 1.2, но держат 3.0 и все возможные расширения.
Экстеншены - это одновременно и большой плюс и самая большая задница OpenGL

>> No.52694  
File: 1297619240442.jpg -(145021 B, 800x800) Thumbnail displayed, click image for full size.
145021

>>52692
Зато с другой стороны они полезны тем, кому интересно пощупать новые возможности видеокарт сразу после выхода, а не ждать по полгода-год когда Микрософт соизволит выпустить новую версию DirectX. Сейчас это не очень актуально и превратилось в лишнюю головную боль, которую отчасти решает gl 3.0 объявив половину функций deprecated и включив большинство расширений в ядро, а вместо инициализации расширений только отличия в инициализации контекста окна.

>> No.52696  
File: 1297619656188.jpg -(728208 B, 900x839) Thumbnail displayed, click image for full size.
728208

>>52693

>что его пишут тролли.

А командуют ими взаимно ненавидящие друг друга люди, каждый из которых тянет одеяло в свою сторону. Микрософт (ушли в 2003, но успели натворить), Сан и Эппл, кстати, тоже входят в комиссию ARB (Architecture Review Board).

>> No.52698  
File: 1297620881249.jpg -(802505 B, 900x827) Thumbnail displayed, click image for full size.
802505

>>52695
В основном на дореволюционных, потому как целевое железо как правило далеко не новое, а для саморазвития в том числе и на последних, насколько позволяет железо естественно. Интересно же, что нас ждёт.

glh у меня совсем старая наверное, но держи, вдруг пригодится: http://rghost.ru/4337474

>> No.52708  

>>52707

> тулза для расчёта прочности конструкций?

http://refu.ru/refs/67/30256/1.html

>> No.53748  
File: 1298818320555.jpg -(92601 B, 331x562) Thumbnail displayed, click image for full size.
92601

>>53747
http://www.youtube.com/watch?v=9yEdiIw2VWY&feature=related

аслоу, интересно было бы знать как вот такие чудеса состыкованы программно с bullet.

>> No.53749  
File: 1298818856327.jpg -(74174 B, 765x538) Thumbnail displayed, click image for full size.
74174

алсоу, ты вкурсях насчёт того, чзх такая флоулайн?
http://www.flowlines.info/software01.html

>> No.53755  
File: 1298831753548.jpg -(256260 B, 800x800) Thumbnail displayed, click image for full size.
256260

>>53747
Не знаю. Для полноценной симуляции в реалтайме ресурсов не хватит, а по мелочи проще самому на Верле написать.

>> No.54151  

>>54149
Что тебе нужно от алгоритма поиска пути в таком случае?

>> No.54152  

>>54148
Если можно заранее оценить, какой из путей короче- можно использовать эвристический поиск
http://en.wikipedia.org/wiki/A*_search_algorithm
http://www.policyalmanac.org/games/aStarTutorial.htm

>> No.54730  

>>54728

>днём не думается вообе ничего- ночью сконцентрироваться трудно. что же делать?

Думать, концентрироваться. Очевидно же.

>> No.54736  

>>54727
Ыфкуиль, кажется, подходит под эту характеристику, строго научный язык.
>>54730
Я думаю, ночью нужно спать. Это вообще хорошая мысль.
И дольше века длится бой. С самим собой.

>> No.55081  
File: 1300226046334.jpg -(83325 B, 426x636) Thumbnail displayed, click image for full size.
83325

>>55078
именно физические движки.

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

ну, например, такой движок, в котором можно было бы по карте с физикой гулять на условной поверхности планеты, а потом от неё отзумиться на высоту в 1000 километров, и пиздануть по планете гигантским стальным астероидом, и значит чтобы она реалистично раскололась.

демки такие есть? проекты? если нету- буду вот это писать.

>> No.55083  
File: 1300226538057.jpg -(87064 B, 800x600) Thumbnail displayed, click image for full size.
87064

>>55078
Можно представить пространство в виде графа с различной ценой ребер, который определять исходя из некоторого соотношения расстояния и уровня сложности воздействия, необходимого для прохождения этого расстояния, дальше использовать любой алгоритм поиска пути в графе с заданными весами ребер.

>> No.55090  
File: 1300228943298.jpg -(152498 B, 900x1272) Thumbnail displayed, click image for full size.
152498

>>55084

> но меня интересуют именно реализации

Реализации чего именно?

> велосипедный спорт не есть хорошо.

Спорный вопрос. Иногда проще и быстрей написать свой велосипед чем париться с подключением чужой библиотеки.
Олсо возможно тебе будет интересно почитать:
http://pmg.org.ru/ai/

>> No.55092  

>>55081

>ну, например, такой движок, в котором можно было бы по карте с физикой гулять на условной поверхности планеты, а потом от неё отзумиться на высоту в 1000 километров, и пиздануть по планете гигантским стальным астероидом, и значит чтобы она реалистично раскололась.

То есть ты хочешь чтобы у тебя хранились 10 террабайт данных о состоянии поверхности планеты, а потом они все в течении полугода пересчитывались для столкновения с астероидом, я правильно тебя понимаю?

>> No.55093  
File: 1300230293995.jpg -(954946 B, 1920x1440) Thumbnail displayed, click image for full size.
954946

>>55092

>То есть ты хочешь чтобы у тебя хранились 10 террабайт данных о состоянии поверхности планеты, а потом они все в течении полугода пересчитывались для столкновения с астероидом, я правильно тебя понимаю?

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

мне просто нужен масштабируемый мир, в котором можно отрабатывать алгоритмы.

>> No.55095  
File: 1300233509098.jpg -(117328 B, 966x1000) Thumbnail displayed, click image for full size.
117328

>>55091

> поведения ботов и самого мирка

С вероятностью очень близкой к единице тебе все придется писать самому и с нуля.

>> No.55500  
File: 1300596339472.jpg -(341092 B, 1002x710) Thumbnail displayed, click image for full size.
341092

кгкун, у тебя есть cuda toolkit? а то эти петушки регистрироваться требуют. алсоу, там есть примеры с исходниками? я же так понимаю это всё как шейдеры, вызывается в опенжеле/директиксе и собирается на гпу, нэ? почему они пишут что под прыщикс нет тулкита пока что?

меня тащемто интересует только их реализация finite element метода.

>> No.55501  
File: 1300605452619.jpg -(131769 B, 810x481) Thumbnail displayed, click image for full size.
131769

меня размышления над собственно виртуальным ландшифтом в контексте всепроникающей физики, и с помощью ссылок, нагугленных по цепочке из статьи кг-куна привели к мысли о представлении всего мира частичами. то есть вообще всего, даже небо, даже аллах, даже шерсть из частиц(проверим, есть ли у нас олдфаги нульчана, лол).
и вот каким образом: не в виде массивов вообще всех частиц, а только лишь набора частиц границы среды, который можно легко выявить из частиц, не полностью окруженных себе подобным классом материалов(логично выделить некоторое количество материалов для определения различных сред). соответственно вместо рассчёта для каждой частички мира следует какой-либо просчёт физики производить только для непосредственно потревоженных искуственным импульсом, здесь можно будет ввести величину передачи импульса между частицами материала- бесконечность для абсолютно твёрдых тел, 0 для идеального газа, при этом дальнейший проход position-based методом обеспечит нармальную гидродинамику. и вот здесь возникает tricky part- ящитаю необходимо динамически порождать список частиц(либо уже являющихся границей сред, либо пророждённых внутри среды приложением движения к границе, либо движением внутри самой среды), и динамически же удалять ненужные частички(как то внутри покоящейся среды), дабы не нагружать циклы итерациями. как вам идея, в целом? а вот для проверки контакта сред можно воспользоваться тем же самым bullet.
вопросы:

  1. насколько трудозатрано постоянно порождать тысячи дополнитяльных частиц и выпиливать их, и как это аллоцирование лучше организовать с точки зрения работы с памятью?
  2. я чото забыл какие ещё вопросы, пойду подумаю снова.
  3. а, ещё вопрос возникает относительно рендеринга этих тысяч точек(при нормальном масштабе даже граница сред будет весьма объёмна). можно конечно аппроксимировать мешем, но это как-то тяжело для гпу. воксельный движок? но здесь масштабы не те, и надо обеспечить некоторую сглаженность, например стального бруска.
  4. а потянут ли видеокарты?
>> No.55505  
File: 1300606554696.jpg -(308195 B, 500x640) Thumbnail displayed, click image for full size.
308195

>>55501
опять же вопрос относительно передачи импульсов- насколько затратен вызов функций? если импульс в виде сдвига будет изначально передаваться ну, пяти частицам, а они потом будут перераспределять с учётом коэффицента твёрдости среды его всем своим соседям, рекурсивно и через вызов этой же функции импульса, то можно ли тут что-то оптимизировать? опять же, здесь у нас получается движение волн в среде, с порождением необходимых для этих самых волн частиц, опять же выделение памяти, хотя в твёрдом теле волна должна довольно быстро затухать и прекращать рекурсию.

>> No.55507  
File: 1300607003044.jpg -(217215 B, 500x653) Thumbnail displayed, click image for full size.
217215

>>55501>>55505
да, есть ли какие-то уравнения для быстрого решения всего этого волнового ужаса?
а вот сложные процессы, которые наверняка будут присутствовать только в произведённых игроком предметах можно простчитывать один раз, по вхождении в новую среду, да.

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

>> No.55509  
File: 1300607265177.jpg -(43869 B, 714x506) Thumbnail displayed, click image for full size.
43869

>>55501>>55505>>55507
а вот когда я всё это сделаю, можно будет поселить в этот игровой мир ии, и уже собственно писать его, без необходимости привлекать компьютерное зрение и робототехнику. если получится написать ии, разумно ведущий себя в такой точной игровой вселенной, то для него общение с реальностью будет достаточно простой задачей.

>> No.55547  

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

>> No.55551  

>>55547
но блдажад, надо как-то организовать передачу импульса и трение, я вот размышлял над случаем со сгибанием стального рычага. как при помощи волн и импульсов взаимодействие сложное организовать между несколькими средами, или собственно приложение нескольких сил в разных точках? пока что для меня это большая тайна.

>> No.55600  
File: 1300688024486.jpg -(99006 B, 480x640) Thumbnail displayed, click image for full size.
99006

в принципе я всё продумал сам, но вот теперь реквестирую уравнений для расчёта гашения волны в дискретной среде. если в среде не происходит необратимых деформаций- то внутри нет смысла просчитывать движение каждого атома.

>> No.55607  
File: 1300690627242.jpg -(122687 B, 480x640) Thumbnail displayed, click image for full size.
122687

а вот ещё, опять же- допустим у нас каждый атом определяется двумя float координатами и 27 указателями- один на материал, 26 на окружающие атомы.

сколько, например, миллион таких атомов будет занимать в памяти?

насколько быстро гпу сможет обработать операцию перемножения координат для каждой вершины и вызвать эту же уперацию для данных по половине указателей, вплоть до завершения прохода по каждой вершине? возможно ли вообще при помощи opencl делать такие рекурсии? там есть указатели или быстрый проход в нужном направлении по трёхмерным массивам?

кг-кун, ты нужен.

>> No.55622  

>>55607

>26 на окружающие атомы.

Не нужны, если данные располагаются в памяти упорядоченно. Кто тебе мешает определять соседние как положение_атома+шаг_решетки*направление? Можно задавать положение текстурными координатами. Если удастся разделить уравнения по независимым координатам, то можно перейти от сложности x^3 до 3*x.

>сколько, например, миллион таких атомов будет занимать в памяти?

2 float, униформный материал: 8бит*2*миллион = 15.2мб
3 float (один из них определяет материал): 8бит*3*миллион = 22.8мб

>насколько быстро гпу сможет обработать операцию перемножения координат для каждой вершины

gf560ti производит 1 262 600 000 000 операций с плавающей точкой в секунду.

>вызвать эту же операцию для данных по половине указателей, вплоть до завершения прохода по каждой вершине? возможно ли вообще при помощи opencl делать такие рекурсии?

Напрямую такой алгоритм не реализовать, но есть разные способы, зависит от задачи.

>> No.55859  

Ты можешь сделать распознавание лица? Хотя бы положение зрачков

>> No.56489  
File: 1301493164303.jpg -(12845 B, 400x240) Thumbnail displayed, click image for full size.
12845

>>55892
В OpenCV это 2 fps с сомнительным результатом.

>> No.56498  
File: 1301504024965.png -(99903 B, 790x184) Thumbnail displayed, click image for full size.
99903

>>56489
Хотя терпимо, 30 фпс с чуть худшим результатом. А там и пикрелейтед портируют когда-нибудь, обещали.

>> No.56686  
File: 1301732077176.png -(366356 B, 1279x1023) Thumbnail displayed, click image for full size.
366356

хо хо хо! теперь я могу играть в КРУИЗИС на МАКСИМАЛОЧКАХ и батя мне наверняка скажет МАЛАЦА.

>> No.56687  

>>56686
круизис джва кстати на этих самых максималочках заблюрен и замоушенблюрен до состояния какого ПРИСТАВКОМЫЛА. и графон там так себе.

>> No.56689  

>>56686
Ты просто безвольный слабак. Сидение на радеоне на линуксах закаляет разум и тело. Это истинный путь война.

>> No.56701  

>>56689

>война

ты хотел сказать ПРЫЩЕИЛИТЫ? клерасила бы лучше сходил купил, вместо конпеляции очередного ЕДРА.

>> No.57862  
File: 1302806546498.jpg -(67447 B, 347x500) Thumbnail displayed, click image for full size.
67447
Pre-post processors & CAD: Salome_Meca 2010, Salome 5.1.3, GMSH 2.4, Netgen , Tetgen, enGrid, Discretizer / Discretizer::Setup, Paraview, OpenDX, CGX, QCad, FreeCAD, SagCAD, ElmerGUI / ElmeFront / ElmerGrid
Finite Element solvers: Salome_Meca 2010, Code_Aster STA10.1, Elmer v5.5 , Calculix 2.1, Impact 0.76, Dynela, Fenics
Computationnal Fluid Dynamics: OpenFOAM v1.7, the latest release of Gerris flow solver and GFSView, Code-Saturne 2.0 with CFD analysis wizard and tutorial , Elmer Solver, air foil and airplane analysis tools (Xfoil, Javafoil, AVL, Datcom+)
Multibody dynamics : MBDyn with its Blender interface and EasyAnim
3D bio-medical image processing: ITK-Snap, Image J, Voxel_Mesher
Mathematics: GNU Octave +QtOctave, Scilab, wxMaxima, R & Rkward, Gnuplot, Latex, Labplot, g3data, Scipy.
>> No.57974  

ОП , отдохни, бро, пиффка попей.

>> No.60098  

http://www.youtube.com/watch?v=vKLHhFPNqec

>> No.60343  

>>60335
А по-моему - один. И две камеры, чтоб работал.
Этакий лидар для ширпотреба - подумай, если у гражданских такие технологии появились, то что военные используют?...

>> No.60437  
File: 1305972375715.jpg -(174641 B, 600x776) Thumbnail displayed, click image for full size.
174641

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

>> No.60599  

тред якуи: http://nowere.net/b/res/50672.html

>> No.62343  

>>62341
хотя можно было бы zatopeet' квадратики вокруг каждой точки вручную, а точки отметить каким-нибудь особым цветом, а потом из каждой затопленой точки читать путь по прямой, и если он собелевское ребро не пересекает- то всё хорошо, а иначе стирать. а в программе эти блобы уже будет просто извлечь.

>> No.62353  
File: 1307972820040.jpg -(359130 B, 1600x1000) Thumbnail displayed, click image for full size.
359130

>>62341

>Кг-кун, есть в новых шейдерах какой-нибудь способ писать в некоторое количество пикселей из пиксельного шейдера, а не в один? Куду уже некогда изучать.

Да даже не в очень новых. Называется Multiple Render Targets, аттачишь к FBO несколько тектур, в шейдере пишешь вместо glFragColor в gl_FragData[0], gl_FragData[1], и так далее. Начиная с OpenGL 2.0 входят в стандарт.
http://steps3d.narod.ru/tutorials/mrt-tutorial.html
Если с первого раза не заработает, посмотри что glCheckFramebufferStatus(GL_FRAMEBUFFER) возвращает.

>> No.63066  
File: 1308730255210.png -(464926 B, 708x316) Thumbnail displayed, click image for full size.
464926

http://procworld.blogspot.com/ классный проект масштабного воксельного движка под opencl.

очень позновательно, автор-кун всё расписывает.

>> No.63068  

>>63066
вот ещё: http://www.atomontage.com/?id=tech_overv

>> No.63073  
File: 1308733845712.png -(1767325 B, 2149x3543) Thumbnail displayed, click image for full size.
1767325

мне тем временем бетка того videotrace пришла, который по фоткам делает трёхмерные модели, помните? вот все три версии http://www.mediafire.com/?6djrdgaxkkhva1a

>Do not distribute this software without explicit permission from Punchcard.

Windows
Win XP or higher, 32-bit CPU required. (20MB) — uploaded on 12/05/2011
Note: You may need a Visual Studio Redistributable (available from Microsoft here) to be able to run VideoTrace.
If you don't have it, Windows will say either that it can't find some DLLs or that VideoTrace has a side-by-side manifest error.

Mac
Mac OS X, 10.5 or higher. Intel CPU required. (68MB) — uploaded on 12/05/2011

Linux
Linux 2.6 or higher, 64-bit CPU required. (20MB) — uploaded on 12/05/2011
Note that VideoTrace requires an internet connection to start up.
Change Log
A list of changes in the current version of VideoTrace is available here.

>> No.63083  
File: 1308735366457.jpg -(576008 B, 1131x1600) Thumbnail displayed, click image for full size.
576008

>>63073
Ты няша, уже качаю.

>> No.64101  
File: 1309887044243.jpg -(127663 B, 613x584) Thumbnail displayed, click image for full size.
127663

oh boy, it's ­THIS­ thread again.

юми, эй юми, а у тебя нету какого-нибдуь примечательного мануала для быстрого врубания в куду, который бы не подразумевал чтение всего референса сразу? я в принципе думал по примерам разобраться, но вдруг у тебя есть чо.

>> No.64105  
File: 1309888173898.jpg -(250960 B, 815x1324) Thumbnail displayed, click image for full size.
250960

>>64101
CUDA:
http://steps3d.narod.ru/tutorials/cuda-tutorial.html
http://steps3d.narod.ru/tutorials/cuda-2-tutorial.html

OpenCL:
http://opencl.codeplex.com/wikipage?title=OpenCL%20Tutorials%20-%201
http://enja.org/2010/07/13/adventures-in-opencl-part-1-getting-started/?utm_source=rss&utm_medium=rss&utm_campaign=adventures-in-opencl-part-1-getting-started

Вот это http://www.cuvilib.com/ кстати говоря, видел уже?

>> No.64106  
File: 1309889755977.gif -(158220 B, 512x512) Thumbnail displayed, click image for full size.
158220

Господа-участники-этого-треда:
В начале видел мечтательное желание сделать "визуальный ИИ".
Размышления об алгоритмах распознавания объектов.
Попытки изобрести алгоритм для распознавания сил, действующих на объекты, являющиеся частями сцены, которую снимает камера. (Об этом уже есть научная работа, и не одна: http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.51.863).
Далее размышлений об этом стало всё меньше и меньше, и нить скатилась в обсуждение реализаций известных алгоритмов на OpenGL-шейдерах. Пересчёт байтов - это печально.
Общее впечатление от потока: испарившиеся мечты, мелочное копание на поприще реализации, сон переходящий в кому.

>> No.64108  
File: 1309890926589.png -(390473 B, 1024x475) Thumbnail displayed, click image for full size.
390473

>>64105
спасибо. я так понимаю что куду теоретически несложно на опенкл портировать, только в ней энвидивских либ вроде performance primitives нету?

теперь видел, что-то интересное. тут ещё хотят вот эту либу http://www.pointclouds.org/ для обработки и сегментации массивов данных(например с сенсоров кинекта) портировать на куду.
>>64106

>изобрести алгоритм для распознавания сил, действующих на объекты, являющиеся частями сцены, которую снимает камера.

луркай optical flow, в opencv по моему 6 реализаций. всего алгоритмов штук двадцать с мелочью.

алсоу советую самому реализовать его аналог на cuda surf, это соверенно не сложно.

>В начале видел мечтательное желание сделать "визуальный ИИ".>

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

>испарившиеся мечты

я курсачи делал и хуйнёй страдал. физика на куде- серьёзная штука.

>> No.64110  
File: 1309892003982.gif -(86776 B, 256x256) Thumbnail displayed, click image for full size.
86776

>>64108
1)
Один вопрос в разных формулировках:
Зачем повторять то, что сделано в статье? Зачем реализовывать чайник с тремя ногами? Почему нужно делать это на геморройном параллельном языке/железе, если это не окончательный вариант, и придётся переписывать 200% кода? Тебе некуда деть силы и время?
2)
У меня очень сильное ощущение, что ты рвёшься реализовывать раньше чем нужно. Возможно проще было бы изобрести формальный язык для этой задачи, выразить на нём её решение, написать транслятор из него в твою CUDA, или куда угодно. Вырази ты на псевдокоде все алгоритмы, покажи, расскажи как оно будет работать, до мелочей.
3)
Я не понимаю, ты что, знаешь как реализовать честный ИИ, имея пусть и неограниченные ресурсы? Поделишься?
4)
Смотрел ли ты в сторону OpenCog, Novamente (говорят что реализовали половину паттернистского ИИ в 70000 строк С++ кода), a2i2? Если ты так хочешь разрабатывать, почему бы не использовать OpenCog, там уже хоть что-то реализовано.
5) Ну и почему ты думаешь, что для ИИ необходимы компьютерное зрение и физ. симуляция - вполне отдельные от него вещи.

Печально это всё выглядит. Очередной несбыточный проект. Может если ты подробнее опишешь, что-то и могло выйти.

>> No.64112  
File: 1309892634563.jpg -(39737 B, 1280x720) Thumbnail displayed, click image for full size.
39737

>>64110
Знания, которые он сейчас получает позволят ему в будущем найти хорошую работу и реализовать другие проекты, так что его занятие при любом раскладе не бесполезно.

>> No.64113  

>>6412 Так почему бы не назвать это "ребятки, я тренируюсь в CUDA-программировании", чтобы не индексироваться в гугле и не сбивать честных исследователей? :3
Жду ответов, таки - интересно.

>> No.64114  
File: 1309893232706.jpg -(97092 B, 713x900) Thumbnail displayed, click image for full size.
97092

>>64110

>Вырази ты на псевдокоде все алгоритмы, покажи, расскажи как оно будет работать, до мелочей.

во-первых я не перед научным советом.

во-вторых если бы это можно было так легко формализовать- его бы давно сделали.

в-третьих я провожу исследования и в процессе их нахожу идеи.

>ты что, знаешь как реализовать честный ИИ, имея пусть и неограниченные ресурсы?

с неограниченными- элементарно.

  1. превращаем все истинные законы вселенной в алгоритмы
  2. считываем вселенную
  3. считываем необходимое состояние вселенной
  4. мотодом динамического программирования, например, находим кратчайшую последовательность трансформаций из необходимого состояния в текущее
  5. любая задача решена
>почему ты думаешь, что для ИИ необходимы компьютерное зрение и физ. симуляция

окей, человеческое сознание(моё, например) обычно при решении задачь отталкивается от визуального мышления, и описывает разные явления околовизуальными образами, с robust физическими характеристиками. попробуй в своей голове по шагам решить задачу с кучей кубов и бананом на верёвке, поймёшь. в принципе это всё логично так как нейросеть адаптируется под любую систему и работает с характеристиками объектов этой системы. как работает нейросеть мозга пока не совсем ясно, да и не можем мы её точно воссоздать, там каждый нейрон и процессор, и память, и с другими соединён. так что я думаю работать в направлении своей реализации визуального(для начала) мышления, на графах и математике, без привязки к специфическому нейрохардвару, по твоим ссылочка кстати что-то такое и есть. по сути решение формальных задач уже есть- оно суть поиск пути на графе, так что надо адекватно транслировать окружение и задачу в этот самый граф.

>Может если ты подробнее опишешь, что-то и могло выйти.

спиздить захотел?!

а ссылочки я схороню, да.

>> No.64115  
File: 1309893299589.jpg -(95906 B, 702x1024) Thumbnail displayed, click image for full size.
95906

>>64112

>Знания, которые он сейчас получает позволят ему в будущем найти хорошую работу
>и реализовать другие проекты

http://www.youtube.com/watch?v=FopyRHHlt3M

рашка

>> No.64117  
File: 1309894173421.jpg -(81514 B, 600x831) Thumbnail displayed, click image for full size.
81514

>>64110
хотя вот опенког в принципе хуита ещё та- они кончено молодцы что замутили какие-то классы для графов и нечёткую/эволюционную логику, но это всё уже есть, а вот чего ни у них, ни у кого либо ещё нет- так это системы генерации и проверки гипотез, для чего мне и нужен физический(на самом деле более широкий чем физический, ещё абстрактный причинно-следственный, ибо просчитывать все атомы невозможно) движок, генерировать пригодные для рл гипотезы, а там уже подтверждать работу гипотезы можно и даже без нечёткой логики, с одним манипулятором и камерой. без гипотез нет никакого интеллекта, интеллект берёт реальные явления и синтезирует из них новые, вот и всё, ну и ещё приписывает реальным объектам ссылки.
главные вопросы ии- кэширование событий и всякие оптимизации для реалтаймовой работы без значительной потери точности, на самом деле, если мой теоретический объёмовый физический движок будет работать быстро и точно- дело в шляпе.

в остальных проектах многабукоф, мёртвые блоги какие-то и я пошел спать короче.

>> No.64119  
File: 1309894629913.jpg -(209406 B, 849x857) Thumbnail displayed, click image for full size.
209406

>>64114
Упираемся в вопросы определений. Что такое ИИ? <-- очень важный вопрос
То что ты описываешь я бы назвал "алгоритмом для вычисления оптимальной трансформации, связывающей два заданных состояния физического мира". Ты считаешь, что ИИ сводится к этому?

Замечу, что можно думать и математическими образами.
Большинство задач нельзя представить визуально.
(Например те, что требуют пространств с размерностями больше трёх).
Чистые математики могут представить себе всякие синтетические объекты, я гарантирую это.

>во-первых я не перед научным советом.

Пишешь на публичном ресурсе => претендуешь на понимание со стороны других, разве нет?

>во-вторых если бы это можно было так легко формализовать- его бы давно сделали.

А потом у тебя описание решения задачи в пяти пунктах. Или это не то?

>в-третьих я провожу исследования и в процессе их нахожу идеи.

Это хорошо.

Не вижу обоснования того что следует излагать обрывочно и непонятно.

И ответь на вопрос 4), пожалуйста.

>> No.64120  

>>64117

>многабукоф

Ага, там в команде пять Phd математиков, да несколько программистов. Это намекает, что задача много сложнее чем ты себе представляешь.
Грустно это всё. Не сделаешь ни черта с таким походом.

>> No.64122  
File: 1309895858388.jpg -(98952 B, 695x596) Thumbnail displayed, click image for full size.
98952

>>64119

>Ты считаешь, что ИИ сводится к этому?

интеллект это способность решать задачи, для которых у существа нет специальных приспособлений. в конечном счёт интеллект- да, поиск кратчайшего(или просто) пути из одного состояния в другое.

>Чистые математики могут представить себе всякие синтетические объекты, я гарантирую это.

я не чистый математик и слабо это всё понимаю, так что учить ии матану буду когда он научится хотя бы на уровне обезьяны задачи решать. алсо есть мнение, что матан- это операции со ссылками на объекты с чистой рекомбинацией и применением кешированных правил(следствий, сцен, не знаю как сказать точно, надо будет термины потом придумать).

>претендуешь на понимание со стороны других

я шизофреник на аиб полной шизофреников.

>Или это не то?

не, ну почему, если у тебя есть ресурсы чтобы эмулировать вселенную полностью, а потом рекурсивно перебирать все возможные трансформации(учитывая квантовые) из одного состояния в другое, то богоподобный разум уже тут. хотя он не сможет выйти за пределы этой вселенной, ему тогда потребуется метод автоматической генерации пространств, это уже сложнее. но вообще так чётко, насколько позволяет мне мой замутнённый разум, идея изложена тут: >>64117

>И ответь на вопрос 4), пожалуйста.

бля, я ж говорю что ссылки твои схоронил и поглядел. завтра буду разбираться.
>>64120

>Это намекает, что задача много сложнее чем ты себе представляешь.

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

>Не сделаешь ни черта с таким походом.

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

>> No.64123  
File: 1309896063662.jpg -(82517 B, 266x400) Thumbnail displayed, click image for full size.
82517

>>64115
Хуяшка. Хватит ныть! Если что-то кому-то не нужно, значит неправильно предлагаешь. Приходи с оригинальными идеями и добивайся своего, а не отмазывайся рашка-парашка, все кругом мудаки поэтому ты такой охуенный никому не нужен.

>> No.64125  
File: 1309896189227.jpg -(110973 B, 850x850) Thumbnail displayed, click image for full size.
110973

>>64114

>во-первых я не перед научным советом.

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

>во-вторых если бы это можно было так легко формализовать- его бы давно сделали.

Тогда разработай новую дисциплину.

>в-третьих я провожу исследования и в процессе их нахожу идеи.

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

>с неограниченными- элементарно.
>превращаем все истинные законы вселенной в алгоритмы
>считываем вселенную
>считываем необходимое состояние вселенной
>мотодом динамического программирования, например, находим >кратчайшую последовательность трансформаций из необходимого >состояния в текущее
>любая задача решена

Как ты собрался считать вселенную если даже все объекты инициализировать не можешь, а степень декомпозиции не знаешь?

>окей, человеческое сознание(моё, например) обычно при решении задачь отталкивается от визуального мышления, и описывает разные явления околовизуальными образами, с robust физическими характеристиками. попробуй в своей голове по шагам решить задачу с кучей кубов и бананом на верёвке, поймёшь. в принципе это всё логично так как нейросеть адаптируется под любую систему и работает с характеристиками объектов этой системы. как работает нейросеть мозга пока не совсем ясно, да и не можем мы её точно воссоздать, там каждый нейрон и процессор, и память, и с другими соединён. так что я думаю работать в направлении своей реализации визуального(для начала) мышления, на графах и математике, без привязки к специфическому нейрохардвару, по твоим ссылочка кстати что-то такое и есть. по сути решение формальных задач уже есть- оно суть поиск пути на графе, так что надо адекватно транслировать окружение и задачу в этот самый граф.

Какие к чёрту графы? Неужто нейросети настолько примитивны?
>>64117

>это системы генерации и проверки гипотез

Просчитать мир? Да ты в бога-первопрограммиста уверовал?

>> No.64126  
File: 1309896339251.jpg -(250017 B, 702x825) Thumbnail displayed, click image for full size.
250017

>>64123

>Приходи

к тебе? адрес дай, я и бухла какого-нибудь принесу. инбифо рашкасрач.

>ты такой охуенный

так я и не говорил что я охуенный, просто объективно все эти безумные навыки кудаопенжелекрафтинга нахуй никому не сдались. игр у нас не делают(особенно у меня в столице сибири), вон даже ёму вроде как с хохлорашки.

>> No.64128  
File: 1309896779206.jpg -(254105 B, 1000x674) Thumbnail displayed, click image for full size.
254105

>>64125

>Как ты собрался считать вселенную если даже все объекты инициализировать не можешь, а степень декомпозиции не знаешь?

поквантово. ресурсы-то бесконечные. а вообще похуй, двавйте не будем про этот бред с бесконечностями спорить.

>Неужто нейросети настолько примитивны?

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

>> No.64132  
File: 1309897253379.jpg -(18443 B, 169x184) Thumbnail displayed, click image for full size.
18443

>>64122

>интеллект это способность решать задачи, для которых у существа нет специальных приспособлений...

Это глубокий философский вопрос, мы может сто страниц об этом спорить. Не хочу и начинать, потому.

>я не чистый математик и слабо это всё...

Я тоже не чистый математик, но разбираюсь потихоньку.
То о чём ты пишешь дальше - формалистская позиция по отношению к математике. Из данных аксиом можно вывести любое верное утверждение посредством правил вывода. Посмотри metamath.org, к примеру. Но дело в том, что это всего лишь философская позиция, её не получится объективно обосновать.
Веду это к тому, что многие математики - платонисты, они полагают, что математические объекты существуют "где-то", и мы можем их наблюдать. И знаешь, я начал склонятся к такой же позиции, это похоже на правду.
_Вывод: стоит сформулировать задачу, составить план, изучить годную релевантную литературу. Не замахиваться слишком далеко, для начала._

>> No.64134  
File: 1309897532180.jpg -(660724 B, 720x1000) Thumbnail displayed, click image for full size.
660724

>>64128
Во-первых, тебе нужен аппарат, который может просканировать вселенную и разбить её на кванты.
Во-вторых, скорее всего такая модель верной не будет ибо кванты это только начало.

>по сути мозг ищет в своём опыте сигналы, похожие на поступающие в данный момент, и выдаёт набор потенциальных ответов исходя из возможных продолжений этих сигналов, которые он сам и выдумывает. возможное продолжение, наиболее сильно коррелирующее со входом заглушает все остальные, вот примерно так, и система выдаёт соответствующий ему ответ

Теперь понятно. Только не верю я что у мозга при всей его производительности нейроны(суть вершины) работают по принципу классической системы исчисления, а связи? Связи просто имеют разное сопротивление, суть длина или работа? Не может же в живом организме столько добра так неэффективно использоваться.

>> No.64137  
>интеллект- да, поиск кратчайшего(или просто) пути из одного состояния в другое.

Вот вам семейство оптимальных (в О-нотации) алгоритмов для решения этой задачи:
http://www.scholarpedia.org/article/Universal_search
http://www.hutter1.net/ai/pfastprg.htm

>> No.64141  
File: 1309932901754.jpg -(512462 B, 530x800) Thumbnail displayed, click image for full size.
512462

>>64132

>многие математики - платонисты
>они полагают, что математические объекты существуют "где-то"

вот тебе подтверждение того что я cказал, абстрактное мышление основывается на визуальном, и визуальное вполне себе через него просматривается.
>>64134
опять не понел о чём ты, но мозг- это аналоговая система, в нём есть постоянно множество сигналов, которые друг друга глушат и усиливаются специальными отделами, сигналы не прерываются вообще, насколько я понимаю.
>>64137
поиск пути- не проблема, лучше бы интересных работ по физическим симуляциям подкинул.

>> No.64232  
File: 1310071019008.gif -(6690 B, 300x300) Thumbnail displayed, click image for full size.
6690

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

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

как один инструмент отличается от другого и где грань между камнем и инструментом? видимо каменный скребок является инструментом так как визуально похож на другой скребок и на практике может быть применён для получения результатов, которые должен давать скребок. возможно есть что-то ещё?

чем является острая кромка скребка? это свойство объекта, или же подобъект, feature?

короче говоря у кого какие мысли по поводу изобретения и использования инструментов есть? а опенсорсных физических пакетов много, но их все надо переписывать под куду, вот такие дела.

>> No.64237  
File: 1310073618375.jpg -(154114 B, 850x915) Thumbnail displayed, click image for full size.
154114

>>64232

>очевидно что и скребок и нож являются для него объектами

Если не вдаваться в философские перипетии, то нож и скребок действительно воспринимаются как объекты, однако во время манипуляций ими они "прирастают" к манипулятору и воспринимаются как часть целого(организма).

>шкуру или дерево

Объекты, если человек не анимист.

>как он воспринимает ветку относительно дерева?

Как целое.

>дин инструмент отличается от другого

По свойствам.

>где грань между камнем и инструментом

В свойствах.

>чем является острая кромка скребка? это свойство объекта, или же подобъект, feature?

Свойство, вменённое состояние.

>какие мысли по поводу изобретения и использования инструментов есть?

Случайное открытие->осознание->опыт->воспроизводство.

Более интересен другой вопрос - как передавались знания внутри племени в рамках одного поколения, суть горизонтально? Можно предположить, вспомнив Докинза, что изобретение(тот же скребок) это часть человека, который передаёт знание своим потомкам(аналогия бобр-плотина), но не может быть всё так просто. То есть, остальные получают знания наблюдением, повторным опытом или как-то иначе.

>> No.64256  
File: 1310106205623.jpg -(48495 B, 342x358) Thumbnail displayed, click image for full size.
48495

>>64237
а что есть свойство? ведь оно не чисто визуально, а включает в себя следствия из взаимодействия со средой. при этом не каждый раз для того чтобы приписать объекту некоторые свойства нам нужно с ним экспериментировать.

>> No.64259  

>>64237

>Как целое.

скорее как часть дерева

>Свойство, вменённое состояние.

вот тут не согласен, режущая кромка это вполне себе подобъект в некоторых случаях

>Более интересен другой вопрос - как передавались знания внутри племени в рамках одного поколения, суть горизонтально?
>То есть, остальные получают знания наблюдением, повторным опытом

да, пока не существовало системы где один представитель племени целенаправленно обучал другого знания другим передавались посредством простого наблюдения
>>64256

>ведь оно не чисто визуально, а включает в себя следствия из взаимодействия со средой.

именно, для того чтобы визуально различать камень, скребок и нож человек сперва должен приобрести какой-то опыт взаимодействия с ними, дальнейшее распознавание уже будет идти по степени схожести визуальных образов, кстати камень тоже является инструментом если его использовать например для колки орехов

>> No.64277  
File: 1310125012119.jpg -(430801 B, 782x911) Thumbnail displayed, click image for full size.
430801

>>64256

>а что есть свойство? ведь оно не чисто визуально, а включает в себя следствия из взаимодействия со средой. при этом не каждый раз для того чтобы приписать объекту некоторые свойства нам нужно с ним экспериментировать.

Для древнего человека - это неизменный результат эксперимента. имеющий материальную фору, признаки.
>>64259

>скорее как часть дерева

А вот и нет, это было бы слишком сложно. Частью дерева ветка становится только тогда, когда человеку нужно выполнить с ней какую-то операцию.

>вот тут не согласен, режущая кромка это вполне себе подобъект в некоторых случаях

Кромка не является дискретной, поэтому это свойство.

>> No.64279  

>>64277

>Частью дерева ветка становится только тогда, когда человеку нужно выполнить с ней какую-то операцию.

тогда не нужно было бы вводить такое определение как "ветка", есть тебе дерево и все тут, однако само существование такого понятия говорит о том что это часть чего-то

>Кромка не является дискретной

у режущей кромки есть граница, это вполне определенная часть ножа, при заточке человек оперирует именно с режущей кромкой и она является объектом над которым производится действие, так что кромка это подобъект, а острота- свойство

>> No.64280  

>>64279

>тогда не нужно было бы вводить такое определение как "ветка", есть тебе дерево и все тут, однако само существование такого понятия говорит о том что это часть чего-то

Нет, человек не способен воспринимать мир на таком уровне декомпозиции. Можно сконцентрировать внимание на одном объекте, на нескольких, но видеть лес как совокупность деревьев, которые в свою очередь совокупность веток не реально.

>у режущей кромки есть граница, это вполне определенная часть ножа, при заточке человек оперирует именно с режущей кромкой и она является объектом над которым производится действие, так что кромка это подобъект, а острота- свойство

Кромка это часть камня и не отделима от него, все свойства кромки - это свойства камня, так или иначе. Иными словами, мы изменяем камень и создаём объект "инструмент", который является камнем с вменёнными свойствами.

>> No.64282  

>>64280

>Можно сконцентрировать внимание на одном объекте, на нескольких, но видеть лес как совокупность деревьев, которые в свою очередь совокупность веток не реально.

для этого и есть разграничение на понятия "лес", "дерево", "ветка", если уж речь заходит о том как человек воспринимает ветку, то он воспринимает ее как часть дерева

>все свойства кромки - это свойства камня, так или иначе.

поэтому кромка это подобъект

>Иными словами, мы изменяем камень и создаём объект "инструмент", который является камнем с вменёнными свойствами.

здесь опять же идет разграничение в зависимости от того что человек использует, если человек оперирует созданным инструментом то он для него является целым, если человек затачивает нож то режущая кромка возникает как подобъект

>> No.64285  

>>64282
Давай остановимся на том, что то что для тебя подобъект для меня свойство объекта, которое не нарушает его целостность.

>> No.64286  

>>64285
давай уж тогда остановимся на том что это зависит от условий использования, притом что я ни разу не говорил что подобъект нарушает целостность объекта

>> No.64305  

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

>> No.64374  
File: 1310244116435.png -(13730 B, 450x350) Thumbnail displayed, click image for full size.
13730

пока подведу итог:

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

бтв, никто серьёзно подключиться не хочет? может в процессе удастся собрать народу и основать проект свободного ии, мне в принципе огромная власть и богатство, сопряженные с созданием ии не особо нужны, да и задача вроде формулируется уже не на уровне "ололо я знаю, но сказать не могу".

>> No.64377  
File: 1310244952956.jpg -(198740 B, 700x713) Thumbnail displayed, click image for full size.
198740

>>64375
и не пугайся количества частиц, они должны обсчитываться только когда действующая на них сила изменяется. гравитация постоянна, и после прихода системы в покой её можно спокойно игнорировать, если на частицу не подействовали иные силы. термодинамики в земе нет, изначально сгенерировать карту можно и не в риалтайме. про жидкости забудь нахуй, а то мы так никогда ничего не соберём.

>> No.64380  

>>64374

>никто серьёзно подключиться не хочет?

я бы с радостью но в ит-сфере ничерта не смыслю, так что толку от меня никакого

>> No.64385  
File: 1310247103397.jpg -(560416 B, 680x961) Thumbnail displayed, click image for full size.
560416

>>64377

> про жидкости забудь нахуй, а то мы так никогда ничего не соберём

Разве с симуляцией жидкости не проще? В макромасштабе стремится занять наиболее низкий объем, поведение можно описать волновыми законами. В микромасштабе добавляется поверхностное натяжение и смачиваемые/не смачиваемые поверхности.

>> No.64388  
File: 1310248954514.jpg -(67654 B, 850x531) Thumbnail displayed, click image for full size.
67654

>>64374
Чем больше ты пишешь, тем сильнее упрочняется соё мнение о том, что ты псих.

>на одном сраном гпу полноценный симулятор мира собрать нельзя

И на двух нельзя, и на трёх тоже нельзя...

>собрать воедино всякие тулзы: опенфоам для гидродинамики, какой-нибудь фем-движок для механики, какое-нибудь спх для гидродинамики и астрофизики, ну и что там ещё потребуется в процессе, и портировать их под гпу, и будет такая система, если симулировать в ней только наблюдаемое одной отдельной камерой, работать почти в реалтайме.

RL ты не воссоздашь, а искусственный мир не нужен.

>далее в этом пакете организовать архитектуру классов и сопряженных с ними пространств- от уровня солнечной системы до уровня отдельного камня

До того как это сделать ты окончательно рехнёшься или помрёшь от старости.

>а симуляция симуляции физики мозгом.

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

>бтв, никто серьёзно подключиться не хочет?

И много на АИБ ты знаешь успешных проектов?

>может в процессе удастся собрать народу и основать проект свободного ии

НИР без иерархии?

>мне в принципе огромная власть и богатство, сопряженные с созданием ии не особо нужны

Со.

>симуляций сыпучих веществ никто не знает?

Откуда такие замашки? У тебя есть квантовый компьютер, чтобы просчитать миллиарды элементов в взаимодействии?

>после прихода системы в покой её можно спокойно игнорировать

Как и симуляцию такой системы вообще.

>> No.64397  
File: 1310291737181.png -(69419 B, 317x372) Thumbnail displayed, click image for full size.
69419

>>64388

>И на двух нельзя, и на трёх тоже нельзя...

Зависит от локальности воздействия. Взорвать весь мир с просчётом каждой частички нельзя, поковырять в песке палкой можно. Точные просчёты задействовать только при непосредственный контакт с макрообъектом-родителем.
>>64374
Слишком амбициозный проект, и правктически никому не нужный. Продемонстрированных тобой навыков программирования явно не хватит ни на полноценный вклад, ни на руководство проектом. Привлечь людей тебе нечем. Отложи глобальные планы на будущее, и начни с чего-то простого, но доведи до конца, будь последовательным. Не создав ничего, при этом замахиваясь сразу на симулятор вселенной ты не вызываешь доверия ни у кого.

>> No.64401  
File: 1310304291922.png -(7610 B, 750x600) Thumbnail displayed, click image for full size.
7610
>специализированных симуляций сыпучих веществ никто не знает?

Гугл говорит мне, что это сложнее чем просчитывать воду (не удивительно- песок условно можно считать большим числом капелек воды постоянного объёма) http://www.cs.uiuc.edu/homes/yyz/research/fluid/ http://www.cs.unc.edu/~golas/expressionweb/pbs/project.html

>seed ai

ЧЗХ? Какое отношение реальная или смоделированная физика имеет к интеллекту? Разьве без восприятия внешнего мира интеллект исчезает?

>> No.64403  

>>64401
Интегралы Верле прекрасно описывают сыпучие вещества и жидкости, разница песка и жидкости в отсутствие вязкости=образующихся и рвущихся связей. Ссылка в треде выше, проблем с реализацией на GPU (целиком) никаких.

>> No.64407  

http://www.gamedev.ru/code/forum/?id=134394

>> No.64840  
File: 1310840199575.jpg -(901913 B, 2000x1408) Thumbnail displayed, click image for full size.
901913

http://prideout.net/blog/?p=69
http://prideout.net/blog/?p=67
http://prideout.net/blog/?p=66
http://prideout.net/blog/?p=58

>> No.64869  

>>64850
Шизофрения прогрессирует?

>> No.65040  
File: 1311090787742.jpg -(313223 B, 1280x960) Thumbnail displayed, click image for full size.
313223

>>65035

> майнкрафт(да в сущности любой сэндбокс с воксельным подходом) хранит ландшафты?

http://www.minecraftwiki.net/wiki/Alpha_Level_Format
http://www.minecraftwiki.net/wiki/Beta_Level_Format

> но мира майнкрафта всего несколько килобайт

Ничего подобного, от нескольких мегабайт до нескольких сотен мегабайт.

>> No.65043  
File: 1311091924522.jpg -(1254199 B, 1600x1340) Thumbnail displayed, click image for full size.
1254199

>>65042
Грубо говоря данные хранятся чанками по 16x16x128 блоков, в бете чанки еще агрегируются в регионы по 32*32 чанка.

>> No.65045  
File: 1311092323523.jpg -(173702 B, 829x587) Thumbnail displayed, click image for full size.
173702

>>65044
Чанки разные. Каждый чанк содержит массив блоков, по байту на блок, массив дополнительных данных, по 4 бита на блок, массив освещения, по 4 бита на блок и прочий мусор.

>> No.65048  
File: 1311092960818.jpg -(371188 B, 875x750) Thumbnail displayed, click image for full size.
371188

>>65047
Если выделять по байту на блок то такой массив будет весить чуть больше 95мб.

>> No.65051  
File: 1311093652264.jpg -(268334 B, 800x566) Thumbnail displayed, click image for full size.
268334

>>65049

> 10000

Тогда 9,3G.

> тысяча блоков- это же мало, нэ?

Тысяча блоков это не так уж и мало. При принятом масштабе в 1блок=1метр получается квадратный километр площади.

>> No.65053  
File: 1311094005061.jpg -(2038188 B, 2448x3264) Thumbnail displayed, click image for full size.
2038188

>>65052
Оно вполне неплохо жмется gzip или zlib, что так же реализовано в minecraft.

>> No.66273  

>>66272
Считал похожий алгоритм на первом курсе.
Какие параметры даны? Чтобы сразу пооптимальнее сделать.

>> No.66276  
File: 1312985483814.png -(10973 B, 591x424) Thumbnail displayed, click image for full size.
10973

>>66274

>Для каждого треугольника проверяешь, проходит ли основание через окружность, сравнивая расстояние от его краев и середины основания до центра окружности с радиусом окружности.

FAIL
Нужно начертить радиус-вектор, перпендикулярный окружности.
Если он меньше, чем радиус окружности, надо проверить, попадает ли он на основание треугольника, т.е. тупо составить уравнение прямой и окружности, и проверить попадает ли хоть одна из точек пересечения R1 и R2 в промежуток между A и B(по любой из осей координат).

>> No.66277  

>>66276

>перпендикулярный окружности

Прямой, конечно же.
самофикс

>> No.66283  
File: 1312986187944.png -(524234 B, 800x800) Thumbnail displayed, click image for full size.
524234

>>66272
>>66276
slfx:
Разбиваешь многоугольник на треугольники с вершинами в центре окружности. Для каждого треугольника находишь высоту, проверяешь углы у основания на тупоугольность, сравнивая каждую из боковых сторон с высотой. Если есть прямой или тупой угол то просто сравниваешь проходит ли основание через окружность, сравнивая каждое из боковых ребер с радиусом. Если одно меньше, другое больше или хотябы одно равно радиусу то окружность пересекает основание. Если прямых или тупых углов нет то кроме ребер сравнивай еще и высоту с радиусом окружности. Если все больше или все меньше то не пересекает, в противном случае - пересекает. Точку пересечения надеюсь сам найти сможешь?

>> No.66285  

>>66283

>Если есть прямой или тупой угол

Нет, к прямым или тупым углам задача никакого отношения не имеет.
Еще раз, >>66276-кун

>> No.66299  

>>66295

>в 3 измерениях
>многоугольник

ЩИТО?

>> No.66306  
File: 1312993625656.jpg -(110126 B, 899x600) Thumbnail displayed, click image for full size.
110126

>>66305
во, вот эта http://www.cplusplus.com/reference/stl/map/ хуитка как осуществляет доступ к элементам?

>> No.66316  
File: 1313004240481.png -(644535 B, 1000x1207) Thumbnail displayed, click image for full size.
644535

>>66306
Хуёво, это КЧд. Нахуя тебе ассоциативный массив?

>мне нужен трёхмерный массив в памяти, но не простой, а необъявленный, и чтобы только конкретные, заданые мной элементы в нём непосредственно находились.

Если хочешь какой-то скорости, выделяй память из пула, а не из хипа, о new-delete в рантайме вообще забудь. Пиши по-человечески, блджад

>> No.66418  

>>66417
Заведи статический массив пойнтеров или индексов в котором и будешь ремапать.
кое-что о new-delete: http://www.gamedev.ru/code/terms/CacheMiss

>что значит КЧд?

ru.wikipedia.org/wiki/Красно-чёрное_дерево

>> No.66422  
File: 1313126986628.jpg -(258204 B, 900x645) Thumbnail displayed, click image for full size.
258204

>>66421
алсо какбэ индекс- это ещё и координата.
или вот в памяти можно было бы хранить сдвиг до следующего реального элемента, и при доступе просто читать элементы с начала, прибавлять итерации и ждать пока счётчик итераций совпадёт с нужной координатой, как-то так. тоже хуйня какая-то получается, или нет?

>> No.66701  
File: 1313563320055.jpg -(140551 B, 850x609) Thumbnail displayed, click image for full size.
140551

>>66672

>http://software.intel.com/en-us/articles/fluid-simulation-for-video-games-part-1/

Видел конечно. Мне вот эта статья понравилась:
http://developer.nvidia.com/content/fluid-simulation-alice-madness-returns
Но я уже давал ссылку на литтлграссхоппера, у него подобный подход в демка применялся, но тут в коммерческой игре вполне кошерная вода (технически). Чуть уменьшить размер частиц, и вообще шикарно будет. А с крупными подобным подходом облака неплохие получаются. Вообще надо будет заняться водичкой, интересная штука.

>> No.67471  
File: 1315078890515.jpg -(36378 B, 550x550) Thumbnail displayed, click image for full size.
36378

>>67470
http://www.youtube.com/watch?v=-227DJy_bGw
во, уже нашел классную симуляцию. щас буду их работу читать.

>> No.67527  
File: 1315244794144.gif -(5786 B, 192x110) Thumbnail displayed, click image for full size.
5786

>>67525
http://books.google.ru/books?id=wlRP5pJSYF4C&pg=PA23&lpg=PA23&dq=транспонирование+тензора&source=bl

>> No.68039  
File: 1315879243002.png -(188533 B, 424x272) Thumbnail displayed, click image for full size.
188533

http://code.google.com/p/gpusphsim/

опенсорсный sph на куде, нашел чисто случайно.

>> No.70122  
File: 1319814322021.png -(1009537 B, 667x1000) Thumbnail displayed, click image for full size.
1009537

http://rbogatyrev.livejournal.com/9099.html

метасистемные переходы

>> No.70227  
File: 1320000499979.png -(77559 B, 400x400) Thumbnail displayed, click image for full size.
77559

http://en.wikipedia.org/wiki/Eigenvector
всё ссылочки схороняю.

>> No.71183  
File: 1321370420719.jpg -(118877 B, 500x667) Thumbnail displayed, click image for full size.
118877

http://www.youtube.com/watch?feature=player_embedded&v=H0G1yslM5rc

http://en.wikipedia.org/wiki/Particle_filter

>> No.71184  

http://en.wikipedia.org/wiki/Markov_decision_process

>> No.71187  

>>71184
http://en.wikipedia.org/wiki/Partially_observable_Markov_decision_process



Delete Post []
Password

[/b/] [/d/] [/tu/] [/a/] [/34/] [/ph/] [/wa/] [/cg/] [/t/]