Add(MainForm,15340401,28,42)
{
Width=427
Height=448
Caption="Diagram 3D"
Position=1
Point(Handle)
link(onCreate,5558289:doEvent1,[])
}
Add(GL_Perspective,2,182,119)
{
Fovy=35
zFar=100
link(onPerspective,8988601:doBeginList,[(222,125)(222,188)])
}
Add(GL_Main,3,133,56)
{
Color=15780518
link(onInit,4:doInit,[])
link(onViewPort,2:doPerspective,[(173,69)(173,125)])
link(Handle,15340401:Handle,[(139,34)(19,34)(19,86)(34,86)])
}
Add(Timer,5,42,119)
{
Interval=33
Enable=1
link(onTimer,7:doEvent1,[])
}
Add(GL_GTools,6,133,119)
{
Point(doClear)
Point(doPushMatrix)
Point(doPopMatrix)
}
Add(Hub,7,84,119)
{
OutCount=5
link(onEvent1,6:doClear,[])
link(onEvent2,6:doPushMatrix,[])
link(onEvent3,9113718:doRotate,[(108,139)(108,545)])
link(onEvent4,3:doFlip,[(114,146)(114,76)])
link(onEvent5,6:doPopMatrix,[(124,153)(124,139)])
}
Add(Hub,5558289,70,56)
{
OutCount=3
link(onEvent1,3:doInit,[])
link(onEvent2,3:doViewPort,[])
link(onEvent3,5:doTimer,[(92,76)(92,108)(30,108)(30,125)])
}
Add(GL_GluTools,4,182,56)
{
Texture=0
link(onInit,26:doEnabled,[])
}
Add(GL_Light,26,231,56)
{
Ambient=8421504
Diffuse=15793151
link(onEnabled,26:doMove,[(270,62)(270,97)(226,97)(226,69)])
link(onMove,14322260:doEnabled,[])
link(Point,9644193:Point3D,[])
}
Add(GL_Options,14322260,280,63)
{
link(onEvent,14251063:doEnabled,[])
}
Add(GL_Options,14251063,322,63)
{
Flag=1
link(onEvent,614504:doEnabled,[])
}
Add(GL_Options,614504,364,63)
{
Flag=2
link(onEvent,12407500:doEnabled,[])
}
Add(GL_Point3D,9644193,231,14)
{
Y=1
Z=-2
}
Add(GL_Rotate,16196306,217,539)
{
Z=1
link(onRotate,3197625:doEnabled,[])
}
Add(GL_Rotate,9113718,133,539)
{
Angle=-55
X=1
link(onRotate,14564239:doNext,[])
}
Add(GL_Options,12407500,406,63)
{
Flag=8
link(onEvent,11113631:doTexEnv,[])
}
Add(GL_Cylinder,2895704,343,539)
{
BaseRadius=1.5
TopRadius=1.5
Height=0.3
Slices=40
Stacks=2
link(onDraw,6183533:doDisabled,[(383,545)(383,552)])
}
Add(GL_Options,3197625,259,539)
{
Flag=10
link(onEvent,12728831:doDraw,[])
}
Add(GL_Options,6183533,392,539)
{
Flag=10
link(onEvent,2691859:doTranslate,[])
}
Add(Bitmap,6096033,616,49)
{
HWidth=256
HHeight=256
Point(doCreate)
}
Add(GL_GenTextures,12939820,399,189)
{
Index=1
link(Bitmap,6171322:Var1,[(405,173)])
link(onGenTextures,6096033:doClear,[(488,195)(488,62)])
}
Add(StrList,11461101,287,126)
{
@Hint=#16:Список секторов:|32:цвет=процент занимаемый сектором|
Strings=#11:16711680=24|6:255=10|10:4227072=36|8:65535=30|
AddHint(-121,106,191,26,@Hint)
}
Add(Img_Rectangle,843201,616,322)
{
Style=1
Point(BgColor)
Point(Point1)
Point(Point2)
link(onDraw,15272553:doValue,[(674,328)(674,237)])
link(Bitmap,6171322:Var2,[])
link(Color,13494575:Var2,[])
link(BgColor,13494575:Var3,[(636,271)])
link(Point1,6557064:Point,[])
link(Point2,16709330:Point,[(650,312)(692,312)])
}
Add(ArrayEnum,15791049,301,182)
{
link(onItem,10152765:doSplit,[])
link(onEndEnum,5455227:doEndList,[])
link(Array,11461101:Array,[])
}
Add(MathParse,6594185,644,182)
{
DataCount=1
MathStr="%0-256/100*%1"
Default=256
link(onResult,15469003:doColor,[(732,188)(732,414)(394,414)(394,328)])
}
Add(StrPart,10152765,497,182)
{
Char="="
Point(Left)
Point(Right)
link(onSplit,6594185:doCalc,[])
}
Add(PointXY,6557064,637,273)
{
link(Y,13505771:Var2,[])
}
Add(PointXY,16709330,686,273)
{
X=256
link(Y,15272553:Value,[])
}
Add(Memory,15272553,693,231)
{
Default=Integer(256)
Point(Data)
link(Data,13505771:Var3,[(699,222)])
}
Add(GetDataEx,13494575,623,266)
{
Angle=3
link(Data,13487493:Var3,[])
}
Add(MathParse,3112636,476,322)
{
@Hint=#14:вычисляет угол|22:распостронения сектора|
DataCount=1
MathStr="360/100*%1"
link(onResult,15081152:doDraw,[])
link(X1,15434604:Var1,[(482,278)])
AddHint(-70,56,127,26,@Hint)
}
Add(MathParse,13484481,574,322)
{
@Hint=#14:вычисляет угол|14:начала сектора|
DataCount=1
MathStr="%0+360/100*%1"
link(onResult,843201:doDraw,[])
link(X1,15434604:Var3,[(580,278)])
AddHint(-18,54,94,26,@Hint)
}
Add(GetDataEx,13487493,497,266)
{
link(Data,10152765:Left,[])
}
Add(Gl_Translate,2691859,434,539)
{
Z=0.3
link(onTranslate,677836:doCallList,[])
}
Add(GetDataEx,15434604,504,273)
{
link(Data,10152765:Right,[])
}
Add(Counter,14564239,175,539)
{
Max=360
link(onNext,16196306:doRotate,[])
}
Add(GL_TexEnvMode,11113631,448,63)
{
link(onTexEnv,6096033:doCreate,[])
}
Add(GetDataEx,6171322,616,168)
{
link(Data,6096033:Bitmap,[])
}
Add(GetDataEx,13505771,644,217)
{
link(Data,6594185:Result,[])
}
Add(GL_Cylinder,12728831,301,539)
{
BaseRadius=0.5
TopRadius=0.5
Height=0.3
Slices=20
Stacks=2
link(onDraw,2895704:doDraw,[])
}
Add(Gl_BeginList,8988601,238,182)
{
Index=2
link(onBiginList,15791049:doEnum,[])
AddHint(0,-27,21,13,Index)
}
Add(GL_CallList,677836,476,539)
{
Index=2
AddHint(5,-23,21,13,Index)
}
Add(Gl_EndList,5455227,357,189)
{
link(onEndList,12939820:doGenTextures,[])
}
Add(GL_PartialDisk,15081152,525,322)
{
InRadius=0.49
Slices=30
Stacks=30
SweepAngle=45
Point(SweepAngle)
Point(StartAngle)
link(onDraw,13484481:doCalc,[])
link(SweepAngle,3112636:Result,[(545,310)(517,310)(517,364)(482,364)])
link(StartAngle,13484481:Result,[(552,310)(566,310)(566,364)(580,364)])
}
Add(GL_Color,15469003,427,322)
{
Color=128
link(onColor,3112636:doCalc,[])
link(Color,13487493:Var1,[(433,271)])
}
Тут можно поковыряться...есть 5-я версия... и вроде, для линукса есть: http://hiasm.com/down/ (http://blender-3d.ru/forum/go.php?url=aHR0cDovL2hpYXNtLmNvbS9kb3duLw==)Там только пакеты для дебиана четырёхлетней давности. Вряд ли они и в самом дебиане последних версий станут и будут работать.
[leonid@localhost ~]$ /home/leonid/build/hiasm/usr/bin/hiasm5
[main_gui.cpp]:init
/home/leonid
/home/leonid
/tmp
/home/leonid/.local/share
/home/leonid/.config
/home/leonid/.cache
/etc/xdg
/usr/share
open hiasm.db...
load PackCollection...
[Pack.cpp]:PackCollection
Sql query select pref from localization where active = 1 return empty result!
Ошибка сегментирования
[leonid@localhost ~]$
Package: hiasm5-dev
Version: 5.0.4
Section: devel
Architecture: amd64
Depends: sqlite3
Maintainer: Dilma <dilma@hiasm.com>
Description: HiAsm Studio 5
Тестовая сборка HiAsm5 предназначенная исключительно для ознакомления.
А как же сборка из исходников? Не работает?
В конце страницы http://blog.hiasm.com/article/11/
Palette.cpp: В функции-члене «virtual void PaletteItemGroup::draw(DrawContext)»:
Palette.cpp:364:43: ошибка: «class Gtk::StyleContext» has no member named «get_text»
Gdk::Cairo::set_source_color(dc, style->get_text(Gtk::STATE_NORMAL));
^
Palette.cpp:366:43: ошибка: «class Gtk::StyleContext» has no member named «get_text»
Gdk::Cairo::set_source_color(dc, style->get_text(Gtk::STATE_SELECTED));
^
<встроенное>: ошибка выполнения рецепта для цели «Palette.o»
make: *** [Palette.o] Ошибка 1
[leonid@localhost src]$
Qt
Пакет на основе Qt позволяет разрабатывать кроссплатформенные приложения. Сам HiAsm возможно запускать только через Wine.
wxWidgets
Пакет на основе wxWidgets, так же как и Qt, позволяет создавать кроссплатформенные приложения.
Файлообменник проектов HiAsm: http://forum.hiasm.com/forum_serv.php?q=55&start=0Сайт forum.hiasm.com может угрожать безопасности вашего компьютера.
Пример простейшего 3D редактора: http://forum.hiasm.com/forum_serv.php?q=56&id=1101
У меня forum.hiasm.com не работает, еще и браузер ругается на вредоносный сайт, а forum.hiasm.net нормально запускается.
... любое обращение к памяти требует времени ...считай такты операций процессора ... иногда можно очень выиграть нетривиальными решениями...
... а почему работа с моделью в blender раньше была (или казалась что была) быстрее? ...Потому что интерфейс был не на тормознутом интерпретаторе Python, а на исполнимом коде...
LanuHum, если хочешь, я создам тему по ассемблеру?Нет. Я почему-то подумал, что HiASM использует ассемблер, ибо созвучен с YASM и NASM в линуксе , диалектами ассемблера.
... почему вычисления на gpu, быстрее чем на cpu? ...сравнил кучу процов с одним, хоть и производительным......
Потому что интерфейс был не на тормознутом интерпретаторе Python, а на исполнимом коде...Ещё и Python3 более тормознутый, чем Python2.
LanuHum, самое смешное, что та же тенденция и в коммерческом ПО :)Да, так то оно так. Только непонятно, где же эти просто увлечённые? Раньше люди собирали наклейки от спичечных коробков, фантики от конфет - это было увлечение. Почему то никто не увлекается программированием для самой программы как коллекции фантиков.
Ну сам подумай, кто будет часто апгредить свой комп (железо), если на нём новое ПО (даже бесплатное ;) )не будет тормозить? :)
Капитализъм :)
Блендер манипулирует десятками миллионов поликов только потому, что он написан на этих языках.Да затык конечно во времени сортировки кучи всех этих данных( вершин, рёбер, граней)...
Я купил букварь Шилдта так как нашёл его более понятным для стартующего изучение, но следующая книга будет (если будет, разумеется) от создателя языка С++ Бьёрна Страуструпа
Да, так то оно так. Только непонятно, где же эти просто увлечённые? Раньше люди собирали наклейки от спичечных коробков, фантики от конфет - это было увлечение. Почему то никто не увлекается программированием для самой программы как коллекции фантиков.Ну почему же... ОСи пишут на ассемблере ) Конечно они могут показаться "игрушечными", но... сам думай, сравнив размер и функциональность :)
Мне 50 лет. Чтобы взяться с нуля писать на ассемблере я должен изучить ни только его, но и физику и математику от и до. Кроме этого я должен изучить все доступные и недоступные алгоритмы рейтрейсинга. Не зная английского с рейтрейсингом не разобраться никогда.ЦитироватьБлендер манипулирует десятками миллионов поликов только потому, что он написан на этих языках.Да затык конечно во времени сортировки кучи всех этих данных( вершин, рёбер, граней)...
Я купил букварь Шилдта так как нашёл его более понятным для стартующего изучение, но следующая книга будет (если будет, разумеется) от создателя языка С++ Бьёрна Страуструпа
Не знаю, у меня такая книжка есть (сам не знаю нахрена купил, только в школе ассемблер юзал :) , а потом меня в искусство занесло), может и тебе будет интересна: http://soft.sibnet.ru/soft/21992-assembler--praktikum-2-e-izdanie/ (http://blender-3d.ru/forum/go.php?url=aHR0cDovL3NvZnQuc2libmV0LnJ1L3NvZnQvMjE5OTItYXNzZW1ibGVyLS1wcmFrdGlrdW0tMi1lLWl6ZGFuaWUv)
Только FreeBasic + Assembler, Си не потяну... уж больно хитрожопый язык :) в хорошем смысле :)А тебе не нужно тянуть С. Тебе нужно только предоставлять инфу непосредственно по рейтрейсингу шаг за шагом. Ни ссылки, а то, как практически осуществлять шаги. А, я буду разбираться с плюсами в попытках совершить шаг за шагом.
Попытался запустить колибри как рекомендуется в виртуалбоксе - зависло всё, пришлось перезагружать иксы.она под старые процы (компы) х16, х32... скорее всего потому и глючит на х64...
А вдруг опять поругаемся? :)Не думаю, что проблема в этом. Виртуалбокс тянет старые оси, я мандриву 2006 устанавливал в нём (32 бита).ЦитироватьПопытался запустить колибри как рекомендуется в виртуалбоксе - зависло всё, пришлось перезагружать иксы.она под старые процы (компы) х16, х32... скорее всего потому и глючит на х64...
ну фиг его знает... ты тему создаёшь? Я тебе ссылку дам на код рейтрейсера на freebasic, сможешь переделать под Cи, если тебе так хочется, но я смысла в этом особого не вижу, кроме самообразования...Смысл - написать рейтрейсер для анимации с глобальной иллюминацией и фотонными картами, подобный Яфе, но, чтоб тянул сцену Блендера в 20 миллионов фейсов и не использовал файлы для передачи данных из Блендера рендереру. Для такой передачи данных я уже немного разобрался с кодом используя Блендер как сишный модуль Python. Код на С++ вытягивает данные прямо из модуля.
есснно, freebasic код я буду пояснять , как ты и хотел...
... попытайтесь выявить проблему неэффективности рендера(ов) ...этого что ли, который я выложил? Дык там нет нихрена поддержки многопоточности... одно ядро... я Ланухумыча давно предупреждал, что нихрена не всё так просто, а очень охрененно сложно, хотя реализуемо... но с другой стороны, а почему не попробовать? :)