... не совсем понял какой код и куда нужно его перенести ...Рендерер Art of Illusion(AOI) подобен блендеровскому интерналу, он не имеет различных шейдеров, которые как у Cycles присутствуют и у Sunflow. У AOI можно любому материалу накрутить прозрачность, зеркальность и прочие параметры. Вот и была мысль в Sunflow создать один единственный шейдер, в которм можно настроить всё и в любом месте объекта. Кроме того в AOI присутствует объект tube, которым можно создавать волосы с UV
... поясни ...
>> делает всё, чтобы удалить непокорных.
... Леонид! ты не прав ...
>> делает всё, чтобы удалить непокорных.Я констатирую факты. Знаю, очень много осуждённых отбывают не свой срок.
... Леонид! ты не прав ...
...артофиллюзион детище джавы, там проблема с памятью, поэтому, я мыслю переписать на пайтон, а вычисления отдать С...Сложный проект, я не потяну. Поискал автотрансляторы Java -> C++ попробовал вот этот https://bitbucket.org/arnetheduck/j2c это плагин к Eclipse. Прогнал на исходниках Art of Illusion. Что выпало в результате https://yadi.sk/d/V3wyqFmpkeVrs Ясное дело, код не рабочий. Нужно дополнять его сишными библиотеками на соответствующие сишные модули(или писать самому) аналогичные java-вовским. Вообще надо править, то что выдал транслятор. Но тем кто понимает С(С++) и плохо знает java, возможно будет полезно.
Не, не нужно всё перегонять на C++, я, вообще, в нём почти ничего не понимаю. Я имел ввиду схему подобную blenderseed...артофиллюзион детище джавы, там проблема с памятью, поэтому, я мыслю переписать на пайтон, а вычисления отдать С...Сложный проект, я не потяну. Поискал автотрансляторы Java -> C++ попробовал вот этот https://bitbucket.org/arnetheduck/j2c это плагин к Eclipse. Прогнал на исходниках Art of Illusion. Что выпало в результате https://yadi.sk/d/V3wyqFmpkeVrs Ясное дело, код не рабочий. Нужно дополнять его сишными библиотеками на соответствующие сишные модули(или писать самому) аналогичные java-вовским. Вообще надо править, то что выдал транслятор. Но тем кто понимает С(С++) и плохо знает java, возможно будет полезно.
Если будет только запутывать больше чем оригинальный код на java, то лучше не смотреть.
Если писать свой рендерер, то лучше курить ассемблер и математику с фиксированной запятой, потому что это считается быстрее в десятки раз, но сложно :) ...Ну, вот, и ты туда же: "Давайте ребята, изобретайте колесо". Мы и об этом потрындим да на той жопе и сядем. Я всегда в панике, когда разработчики Блендера подсовывают мне свинью в виде изменений в апи, в результате чего перестают работать запасённые мною инструменты, и, я не нахожу, как я это буду исправлять.
А остальное няшноё типа графического интерфейса, пофиг на чём будет написано...
Ну, вот, и ты туда же: "Давайте ребята, изобретайте колесо"Вроде пишу про реальные вещи... кто писал код на ассемблере вставки в другом ЯП, меня поняли :)
Уже размещал здесь свой тест:Это фигня всё... тестировать надо на сценах близких к реальным проектам с тучей геометрии и материалов...
Я не говорю, что ты пишешь нереальные вещи. Просто мне это уже очень сложно для воспрятия. Да, ты и сам написал, чтоЦитироватьНу, вот, и ты туда же: "Давайте ребята, изобретайте колесо"Вроде пишу про реальные вещи... кто писал код на ассемблере вставки в другом ЯП, меня поняли :)
Не, можно и на С и на С++ но один фиг надо сконфигурировать компилятор директивами, чтобы он выдал быстрый машинный код... В таком случае всегда пишут вставки на ассемблере.
потому что это считается быстрее в десятки раз, но сложно
потому что это считается быстрее в десятки раз, но сложноНу да сложно... придётся спуститься на самый низкий уровень, и забыть про ништяки ООП :)
Согласен, но не в шесть раз же медленнее одну и ту же вазу рендерить? Я кидал текстуру с альфой на занавеску - рендер за секунды, а у Поврея за минуты. А, вот метаболы считает очень медленно иллюзион, некоторые нюансы есть неприятные: прозрачный объект не спекулярит, рельеф какой-то слабоватый.ЦитироватьУже размещал здесь свой тест:Это фигня всё... тестировать надо на сценах близких к реальным проектам с тучей геометрии и материалов...
Сцен для тестов полно...
Как я увидел и понял, программа пишется на питоне, и, только функции, требующие больших вычислений пишутся на cython, компилятся и подключаются как модули.Все равно сложно. Программа большая ~5МБт исходников (>500 файлов *.java)
З.Ы. а если честно, то написание проги, "не сделает мульт"... мульту пофиг на проги :) он может быть и нарисован вручную...Я начал эту тему год назад, тогда про мульт речь не шла. Вернулся я же к этой теме не по причине написания кода, а по причине желания сменить Блендер на что-то стабильное на протяжении лет. Тупо надоел уже отказ написанных ранее скриптов. А сейчас я уже и не помню, к какой версии Блендера мне нужно вернуться, чтоб заработали все скрипты. Вернее, все не заработают, некоторые нужно будет исправлять назад. Ох и надоели разработчики переписыванием API. Вот уж кому-то делать нет чего точно. Да и остановка на какой-то версии - не выход. Сломается комп, купишь новый. На новом железе старая ось может не поехать, на новой оси старая прога может не поехать. Да и фишки же полезные внедряются, не хочется от них отказываться.
Тупо надоел уже отказ написанных ранее скриптовLanuHum, так никто же не заставляет постоянно на новую версию блендера перепрыгивать, можно "зависнуть" на одной, которая более-менее устраивает, и писать под нее...
Ну, вот выше, что я написал? Вот, будто ты три первых буквы увидел, и, давай мне писать. :)ЦитироватьТупо надоел уже отказ написанных ранее скриптовLanuHum, так никто же не заставляет постоянно на новую версию блендера перепрыгивать, можно "зависнуть" на одной, которая более-менее устраивает, и писать под нее...
...я всё же хотел бы сидя дома зарабатывать...Ну, что сразу не сказал об этом? Нормальное желание. Зарабатывать аниматором(моделлером) или кодером? Не понятно немного, предполагаю аниматором.
Когда я начинал проект "Ничего страшного" ещё на БУ, я говорил, что в проекте могут поучаствовать все желающие заявить о себе. Что этот мультик может быть портфолио....я всё же хотел бы сидя дома зарабатывать...Ну, что сразу не сказал об этом? Нормальное желание. Зарабатывать аниматором(моделлером) или кодером? Не понятно немного, предполагаю аниматором.
Я, в свое время, был впечатлен программистом по имени Томас Петерсон (Tomas Pettersson) - создатель Sculptirs http://www.3dnews.ru/600032 . Потом немного расстроен, что его(программиста) купили zbrush, что бы не развивалась Sculptirs - их возможный конкурент. Конечно это хорошо для самого программиста, зарплата и все такое. Если я правильно понял, то сейчас он их покинул. Вроде его сайт http://www.drpetter.se давно не обновлялся видимо. Интересные у него проекты были http://www.drpetter.se/project_matchref.html
Я к тому, что можно делать открытый проект и тебя могут заметить. Sculptirs - как пример этого.
Это если программером быть/хотеть, но думаю и с анимацией(мультом) также получится
/*
<?xml version='1.0' standalone='yes' ?>
<!-- xml header for scripts & plugin manager -->
<script>
<name>Hairy</name>
<author>Nate Ryan (nate01@users.sourceforge.net)</author>
<version>1.7</version>
<date>04/20/2004</date>
<description>
This script puts hair on the object named hairy. There must be an object in your scene named "hairy."
The hair will grow from each vertex on the object. Multiple hairs can grow from each vertex by
increasing the value of the hairs variable. If there are multiple hairs at a vertex, their spread
can be increased by increasing the value of maxSep. It's a good idea to make the new script object a child of the "hairy" object so that they move and rotate together easily.
</description>
</script>
*/
waviness = 1.5; // Controls how straight the hairs are
length = 0.5; // Length of each hair
thickness = 0.015; // Thickness of each hair
hairs = 30; // Number of hairs at each vertex
coneAngle = 5; // Sets the width of the "cone" of hairs at the base
gravity = new Vec3(0.0, -1, 0.0); // Sets the strength and direction of gravity
maxSep = 0.2; // avg separation of hairs in a vertex clump
inset = 0.05; //distance to inset each hair to lower them into the object
basemeshname = "hairy";
if (script.isPreview())
hairs = 1;
script.getCoordinates().toLocal().transformDirection(gravity);
random = new Random(0);
segmentLength = length/3.0;
// Find the object to grow hair on.
scene = script.getScene();
info = scene.getObject(basemeshname);
if (info == null) {
print("Could not find object to apply hair to");
return;
}
vector0 = info.coords.getOrigin();
up = info.coords.getUpDirection();
Zee = info.coords.getZDirection();
mesh = info.object;
script.getCoordinates().setOrigin(vector0);
script.getCoordinates().setOrientation(Zee,up);
// Duplicate and outset the vertices.
vert = mesh.getVertices();
norm = mesh.getNormals();
for (i = 0; i < vert.length; i ){
for (j = 0; j < hairs; j ){
v = new Vec3 [4];
// Set the base at the vertex.
x = random.nextDouble()-0.5;
y = random.nextDouble()-0.5;
if ( norm.z == 0) {
z = random.nextDouble()-0.5;x = 0;y = 0;
} else {
z = (-x*norm.x-y*norm.y)/norm.z;
}
perpv = new Vec3(x,y,z);
perpv.normalize();
perpv = perpv.times(random.nextDouble()*maxSep);
v[0] = new Vec3(vert.r.x perpv.x, vert.r.y perpv.y,vert.r.z perpv.z);
v[0].subtract(norm.times(inset));
// Determine the direction of the hair when it leaves the base.
theta1 = coneAngle*(random.nextDouble()-0.5)*Math.PI/180.0;
theta2 = coneAngle*(random.nextDouble()-0.5)*Math.PI/180.0;
theta3 = coneAngle*(random.nextDouble()-0.5)*Math.PI/180.0;
phi = random.nextDouble()*2.0*Math.PI;
dir = new Vec3(theta1 norm.x, theta2 norm.y, theta3 norm.z);
dir.add(gravity.times(0.5));
// Place the remaining vertices.
for (k = 1; k < v.length; k ) {
// Place the next vertex.
dir.normalize();
v[k] = v[k-1].plus(dir.times(segmentLength));
// Add a random displacement to the direction.
dir.x = waviness*(random.nextDouble()-0.5);
dir.y = waviness*(random.nextDouble()-0.5);
dir.z = waviness*(random.nextDouble()-0.5);
// Add a displacement due to gravity.
dir.add(gravity);
}
// Create the hair.
hair = new Tube(v, new float [] {1.0f, 1.0f, 1.0f, 1.0f}, new double []
{thickness, thickness, thickness, 0.0}, Tube.APPROXIMATING, Tube.OPEN_ENDS);
script.addObject(hair, new CoordinateSystem());
}
}
Например, с помощью скрипта в Art Of Illusion создаётся мех.Таким же образом можно написать скрипт в Блендере и нафигачить волос, вместо того чтобы несколько крутилок крутануть... писать скрипт - это всегда будет дольше... я не понимаю, нафига усложнять себе жизнь?
Есть, но...ЦитироватьНапример, с помощью скрипта в Art Of Illusion создаётся мех.Таким же образом можно написать скрипт в Блендере и нафигачить волос, вместо того чтобы несколько крутилок крутануть... писать скрипт - это всегда будет дольше... я не понимаю, нафига усложнять себе жизнь?
но, если ты создашь в Блендере волосы из кривых 30 на полигон, то openGL начнёт тормозить, ты не сможешь работать в редакторе.
Смахивает на бред... Ничто никому до сих пор не мешало экспортировать и импортировать полигональные модели меж 3D приложениями... Что нового?Бред - твоё увлечение мышкой.Цитироватьо, если ты создашь в Блендере волосы из кривых 30 на полигон, то openGL начнёт тормозить, ты не сможешь работать в редакторе.
для этого есть настройки видимости количества экземпляров во вьюпорте... И вообще, всегда отключают куски сцены, для вращабельности... а так же раскидывают по слоям или используют упрощённую геометрию...
для этого есть настройки видимости количества экземпляров во вьюпорте... И вообще, всегда отключают куски сцены, для вращабельности... а так же раскидывают по слоям или используют упрощённую геометрию...Бред точно. Ты не можешь настроить отображение кривой так, чтоб отображалась только каждый сотый или десятый сплайн. Так же не можешь сплайны одной кривой разбросать по слоям.
Таким же образом можно написать скрипт в Блендере и нафигачить волос, вместо того чтобы несколько крутилок крутануть... писать скрипт - это всегда будет дольше... я не понимаю, нафига усложнять себе жизнь?Зачем тогда люди пишут аддоны для Блендера? Чтобы усложнять жизнь?
Ты не можешь настроить отображение кривой так, чтоб отображалась только каждый сотый или десятый сплайн.
Зачем тогда люди пишут аддоны для Блендера? Чтобы усложнять жизнь?Пишут, чтобы упрощать. Но тогда, когда стандартными средствами решения поставленной задачи быстро, добиться очень проблематично... но бывает, и изобретают велосипед, по незнанию :)
Утолщать вполне можно, анимируя параметры прядиВот так?
Вот так?Я же написал, что можно решить и через объект... не пробовал... но через объект кривой, точно получится
В анимации вообще никто на каустику не обратит вниманияА, если эта анимация - портфолио? А если заказчику нужна каустика в анимации?
Кстати, фотонные карты (или просто фотоны) и анимация - это жуть :) Фликать картинка будет - мама не горюй :)Ага, если апи допилено до состояния вводить скриптом ключи анимации для параметра point radius, и, если кто-то позаботился задокументировать сие, и, если завтра его не выпилят, если сегодня впилили.ЦитироватьВот так?Я же написал, что можно решить и через объект... не пробовал... но через объект кривой, точно получится
А, если эта анимация - портфолио? А если заказчику нужна каустика в анимации?Физически точно? Нафига? Думаю заказчику нужен будет только визуальный эффект "зайчиков"...если он не из НИИ :)
Ага, если апи допилено до состояния вводить скриптом ключи анимации для параметра point radius, и, если кто-то позаботился задокументировать сие, и, если завтра его не выпилят, если сегодня впилили.1. Есть ключевые формы. (это всегда работает)
Ага, и, если он не директор стеклодувной мануфактуры откуда-то из под Гуся Хрустального. :)ЦитироватьА, если эта анимация - портфолио? А если заказчику нужна каустика в анимации?Физически точно? Нафига? Думаю заказчику нужен будет только визуальный эффект "зайчиков"...если он не из НИИ :)
Ключевые формы для огромного массива - это фантастика и для рук и для скрипта.ЦитироватьАга, если апи допилено до состояния вводить скриптом ключи анимации для параметра point radius, и, если кто-то позаботился задокументировать сие, и, если завтра его не выпилят, если сегодня впилили.1. Есть ключевые формы. (это всегда работает)
2. Есть скрипт идущий с официальным релизом: Anim All (это упрощение для простых анимаций, но лучше использовать #1 для серьёзных решений)
Я ж писал решение, для " такого директора"... Кроме облёта камерой ему нахрен ничё не будет нужно иное :)Тебе б во фриланс. Там бы ты быстро заказчиков на место ставил бы. Ещё лучше, если такой директор денег даст и заказывать ничего не будет. :)
Тебе б во фриланс.Вам бы туда же... я б по смотрел на того "директора", для которого вы будете решать виз "скриптами" :)
Никакая это не фантастика.... всегда можно решить через драйвера их случайное влияние на экземпляр объекта. Но в данном случае каждому экземпляру придётся добавлять модификаторы и их уже случайным образом анимировать...Есть документация на управление драйверами скриптом?
Вам бы ту даже... я б по смотрел на того "директора" для которого вы будете решать виз "скриптами" :)А, как ты думаешь, заказчики, вообще, смотрят портфолио? Если смотрят, то чем руководствуются? По-твоему, так одного куба достаточно в портфолио, чтобы тебя выбрали как исполнителя.
В теории всё хорошо выглядит, а попрактикуй - узнаешь, что курят разработчики Блендера.Я прекрасно знаю, что курят в Амстердаме :) Но проще изменить код Блендера под свои нужды, чем написать аналог, даже взяв за основу другой 3D редактор...
А, как ты думаешь, заказчики, вообще, смотрят портфолио?Как правило, заказчик - это главный дизайнер (художник - конструктор), а директор бабки даёт :) Он один хрен, в курсе как это всё делается, какими средствами и в какие сроки, если это серьёзный заказчик.
Проще пользоваться тем, что есть, даже, если оно есть в разных программах.ЦитироватьВ теории всё хорошо выглядит, а попрактикуй - узнаешь, что курят разработчики Блендера.Я прекрасно знаю, что курят в Амстердаме :) Но проще изменить код Блендера под свои нужды, чем написать аналог, даже взяв за основу другой 3D редактор...
А если Вы ему заявите что пишите генерацию геометрии скриптами на никому неизвестном древнем 3D приложении, он Вас пошлёт... к программистам... там иная специфика...Если он меня спросит, как я буду делать картинку, то, он, скорее, не заказчик, а журналист. Я скажу ему, что у меня лицензионное дорогостоящее программное обеспечение, которым многие мои конкуренты не владеют и владеть не смогут. :)
Немного subsurf, немного extrude, облёт камерой...и...от заказов отбоя нету. :)Допустим надо 20 изделий из стекла показать красяво
Про изменение кода Блендера - пока мне это не по силам.Если не будете пробовать, то это так и останется не по силам...
И, по-моему, пора уже купить себе сайтик, да начинать заполнять витрины на нём, а не пытаться в Блендере функцию прикрутить. :)Вперёд! :D
Надеюсь, наш конструктивный диалог окажется кому-то полезен. :)ЦитироватьИ, по-моему, пора уже купить себе сайтик, да начинать заполнять витрины на нём, а не пытаться в Блендере функцию прикрутить. :)Вперёд! :D
http://nethouse.ru (http://blender-3d.ru/forum/go.php?url=aHR0cDovL25ldGhvdXNlLnJ1)
http://www.ucoz.ru
и т.п...
https://www.youtube.com/watch?v=Y74HmBnydSAНе совсем понятно, зачем он всё это по одному полигону делает? Просто, чтоб показать, как он умеет быстро пальчиками перебирать?
У меня нет наклонности к персонажному моделированию и скульптингу. Если про людей без слуха говорят: "Медведь на ухо наступил", то интерпретируя это про меня также можно сказать,что мне кто-то на что-то наступил. :)
Кстати, хорошая прога для реконструкции геометрии http://meshlab.sourceforge.net (http://blender-3d.ru/forum/go.php?url=aHR0cDovL21lc2hsYWIuc291cmNlZm9yZ2UubmV0)
Еще б найти бесплатную вменяемую прогу реконструкции 3D по фото...Говорят, что Meshlab умеет, но я не нашел где :(
Вам не попадались такие проги?
Сами попробуйте, поймете :)Ну, подробно не вникал, но, в данном случае можно использовать shrinkwrap с целыми фрагментами сетки.
Поэтому, я и ищу что-то для себя в скриптинге.Тогда присмотритесь: http://syntopia.github.io/Fragmentarium/ (http://blender-3d.ru/forum/go.php?url=aHR0cDovL3N5bnRvcGlhLmdpdGh1Yi5pby9GcmFnbWVudGFyaXVtLw==)
Спасибо, обязательно посмотрю. Но, к ландшафтам с растительностью дело идёт в моих изысканиях. :)ЦитироватьПоэтому, я и ищу что-то для себя в скриптинге.Тогда присмотритесь: http://syntopia.github.io/Fragmentarium/ (http://blender-3d.ru/forum/go.php?url=aHR0cDovL3N5bnRvcGlhLmdpdGh1Yi5pby9GcmFnbWVudGFyaXVtLw==)
Статья Александра Прокудина: http://digilinux.ru/2013/09/17/fragmentarium-1-0/ (http://blender-3d.ru/forum/go.php?url=aHR0cDovL2RpZ2lsaW51eC5ydS8yMDEzLzA5LzE3L2ZyYWdtZW50YXJpdW0tMS0wLw==)
...есть еще генераторы ландшафтов...и т.п.
Я скачал исходники. Вот, смотри, как программисты пишут для линукса. Директория Build Linux. Изначально, ясно, что для bash в линуксе пробелы в названии недопустимы.ЦитироватьПоэтому, я и ищу что-то для себя в скриптинге.Тогда присмотритесь: http://syntopia.github.io/Fragmentarium/ (http://blender-3d.ru/forum/go.php?url=aHR0cDovL3N5bnRvcGlhLmdpdGh1Yi5pby9GcmFnbWVudGFyaXVtLw==)
Изначально, ясно, что для bash в линуксе пробелы в названии недопустимы.Кто тебе такую чушь сказал?
Bash в консоли.ЦитироватьИзначально, ясно, что для bash в линуксе пробелы в названии недопустимы.Кто тебе такую чушь сказал?
Что тут неясно?Все-то как раз ясно... Экранировать надо пробелы в путях. А автодополнением по Tab умеешь пользоваться? Оно по-умолчанию экранирует.
cd /home/leonid/build/Fragmentarium-master/Fragmentarium-Source/Build\ -\ Linux
Спасибо, буду знать теперь, что мало знать команды ./configure make make install, нужно ещё знать правописание всех языков сценариев.ЦитироватьЧто тут неясно?Все-то как раз ясно... Экранировать надо пробелы в путях. А автодополнением по Tab умеешь пользоваться? Оно по-умолчанию экранирует.Кодcd /home/leonid/build/Fragmentarium-master/Fragmentarium-Source/Build\ -\ Linux
Qt-Creator собрал Фрагментариум без проблем.Курить С-подобный GLSL... Вам же нравится программировать :)
Понять бы ещё, что с ним делать. :)
Спасибо, буду знать теперь, что мало знать команды ./configure make make install, нужно ещё знать правописание всех языков сценариев.Я так и предполагал, что вместо "надо бы пойти почитать документацию по bash" будет написано что-то типа этого...
что программу из исходников, в первую очередь, будут собирать не программисты, а лузеры?"Лузеры" не должны собирать программы из исходников, особенно, если они даже доки не читают.
ЦитироватьСпасибо, буду знать теперь, что мало знать команды ./configure make make install, нужно ещё знать правописание всех языков сценариев.Я так и предполагал, что вместо "надо бы пойти почитать документацию по bash" будет написано что-то типа этого...Цитироватьчто программу из исходников, в первую очередь, будут собирать не программисты, а лузеры?"Лузеры" не должны собирать программы из исходников, особенно, если они даже доки не читают.
Не знаю, ты либо провоцируешь меня, чтобы я что-нибудь весёлое написал тут.А тебя для этого провоцировать, оказывается, надо? =)
Мой линукс Mageia - 5 на базе Mageia - 5
Если ты на чем-то на базе Ubuntu, то погугли про PPA, а потом "fragmentarium ppa".
А тебя для этого провоцировать, оказывается, надо? =)
Вот сейчас игрался сидел. Тут математику нужно знать от и до.А с каких пор программирование стало быть отдельно от математики? ;D
Ещё один умник.ЦитироватьВот сейчас игрался сидел. Тут математику нужно знать от и до.А с каких пор программирование стало быть отдельно от математики? ;D
Можно написать несколько метров кода, вообще, не обращаясь к модулю math :);D ;D ;D а код - это что такое?
Ну чё ты, в Амстердаме? Код - это текст. Как правило, для его написания используют текстовые редакторы. Не нотные редакторы, не научные калькуляторы...ЦитироватьМожно написать несколько метров кода, вообще, не обращаясь к модулю math :);D ;D ;D а код - это что такое?
или я не прав? :)Не прав. Я пишу просто функцию. Откуда что взять и куда положить. Если мне нужно написать функцию, в которой действиями будут арифметические вычисления, то я стану учить арифметику, если функция будет заключаться в построении куба в пространстве, я пойду учить тригонометрию, а, если функция должна рассчитать всякие там матрицы, мантиссы, интегралы и дифференциалы, то я не напишу такую функцию.