Кстати, я так и не смог найти скомпилированные Dllки для 2.4х. Ссылки мертвы. Нарыл исходники только... но хоть это радует...
ПС. если у кого завалялись, поделитесь пожалуйста.
bpy.ops.gpencil.draw(override,'INVOKE_REGION_WIN',mode='DRAW_POLY', stroke=[{"name":"","size":5, "pen_flip":False, "is_start":True, "location":(0, 0, 0),"mouse":(0,0), "pressure":1, "time":0}])
Помягче???ЦитироватьДля чего всё меняется, не изменяя функций?Согласный это как в суслике нода была Mix Closure, потом ее переименовали сути не меняя... а люди уроков понаписали тем временем... весело, в общем :)
ПС. LanuHum, ты эт... помягче чуть выражайся... зачем прям так явно? Хотя... мож иногда и нужно....
А если совсем серьёзно, то почему бы тебе на FreeBASIC не пересесть, а там глядишь и до С++ с Ассемблером рукой подать. Или у тебя Python головного мозга?Объясняю. Сам я до солнца долечу...в мечтах...
Честно, нихрена не понял смысл, так как последние 12-16 (точно не помню) лет я ненавистный виндоюзверьДело ни в винде, а в надежде на винду.
Странно, но несколько челов меня поддержало.... Сейчас я туда ни ногой.... Смысла не вижу.Когда-то я хотел с этими
:) ой... а пересесть на каую нить Бубунту - это так сложно :)До сих пор я не считал, что общаюсь с дебилом...
Хватит херней заниматься...
че я не понял?
ой... а пересесть на каую нить Бубунту - это так сложноНафига?
Любая реклама - суть пропаганда :) Бабушки на лавочках, которые сарафанное радио, тоже...Какая реклама, пропаганда? Я о чувствах, о собственом Я, о математике, которая логика...
мода на Linux, Python или на С++ - тоже пропаганда...
мы про оси спорим? или про Блендурь?
видимо, ты заблуждался...Заблуждается тот, кто заблуждается последний :)
Че ты хочешь мне доказать?Я???
:D я и не прошу
Слышь, конкурент, ты б лучше помог мне с гуевиной в Блендере, чем драконовские планы строить. Прадигма есть, нужен Гуй и немножко питонова кода с итераторами...
Уже не прошуДурак ты, но, для меня это хорошо :)
Думай как знаешь...Когда-нибудь мы с тобой всё-же договоримся :) Тебе только до моих лет нужно дожить :)
ладно, как скажешь...Код
/*
* This is a texture plugin for blender 1.60 or above.
*
* Dot-drawing plugin, based on a sample plugin from NaN
* Copyright (c) 1999, Bernd Breitenbach
*
* $Id: dots2.c,v 1.5 1999/06/28 18:41:48 bernd Exp bernd $
*
*/
/* ************************************************************
NOTE: This software comes with absolute no warranty.
You may distribute, modify and use it free of charge.
If you have any enhancements or bug fixes, please let me now:
breitenb@iml.fhg.de
************************************************************ */
#include <stdio.h>
#include "math.h"
#include "plugin.h"
/* ******************** GLOBAL VARIABLES ***************** */
char name[]= "Dots";
char *release="$Revision: 1.5 $";
/* Subtype names must be less than 15 characters */
#define NR_TYPES 1
char stnames[NR_TYPES][16]= {"Dots"};
VarStruct varstr[]= {
{LABEL|FLO,"V1.5 bb", 0, 0, 0, ""},
{TOG|INT, "Single", 0.0, 0.0, 1.0, "Creates only a single dot"},
{NUM|FLO, "Size", 0.25, 0.001, 1.0, "The size of each dot"},
{NUM|FLO, "Noise", 0.0, 0.0, 10.0, "Noise parameter: 0. means no noise"},
{TOG|INT, "Smooth", 0.0, 0.0, 1.0, "Smooth dots"},
{TOG|INT, "Bump", 0.0, 0.0, 1.0, "Turn on bump-mapping"},
{NUM|FLO, "Bump Size", 1.0, -5.0, 5.0, "Height of the bumps"},
{TOG|INT, "No AAlias", 0.0, 0.0, 1.0, "Turn antialias off (independent from render settings)"}
};
/* The cast struct is for input in the main doit function
Varstr and Cast must have the same variables in the same order */
typedef struct Cast {
float dummy;
int single;
float size;
float noise;
int smooth;
int bump;
float bump_size;
int noaalias;
} Cast;
/* result:
Intensity, R, G, B, Alpha, nor.x, nor.y, nor.z
*/
float result[8];
/* cfra: the current frame */
float cfra;
int plugin_tex_doit(int, Cast *, float *, float *, float *);
/* ******************** Fixed functions ***************** */
int plugin_tex_getversion(void)
{
return B_PLUGIN_VERSION;
}
void plugin_but_changed(int but)
{
}
void plugin_init(void)
{
}
/* this function should not be changed: */
void plugin_getinfo(PluginInfo *info)
{
info->name= name;
info->stypes= NR_TYPES;
info->nvars= sizeof(varstr)/sizeof(VarStruct);
info->snames= stnames[0];
info->result= result;
info->cfra= &cfra;
info->varstr= varstr;
info->init= plugin_init;
info->tex_doit= (TexDoit) plugin_tex_doit;
info->callback= plugin_but_changed;
}
/* ************************************************************
Dots2
This plugin is an enhancement of my dots plugin.
It is placing dots of size 'size' on the vertices
of a regular triangle lattice covering the x-y-plane.
With 'smooth' you can choose between dots with a sharp border,
or smooth dots with a texture value that is raising
from 0. at the border to 1. at the center.
With bump and 'bump size' you can create dots raising from the
plane.
Apart from smoothing dots, anti-aliasing is performed by
calculating the mean value from four texture values at
the vertices of an pixel. This can be turned off by
toggle the 'no aalias'-button
************************************************************ */
#define SQRT3 (1.73205080756888)
#define SQRT3_2 (SQRT3/2.)
#define BFAC (0.2)
#define EPS (0.0001)
void calc_dot_value(Cast *cast,float x,float y)
{
float size2=cast->size*cast->size,dist2;
float isize2=size2*0.64;
float bsize=cast->bump_size/4.;
float xsign=bsize,ysign=bsize;
float val=0.;
/* First we do a little origami: */
if (x<0.) {
x=fabs(x);
xsign=-xsign;
}
if (y<0.) {
y=fabs(y);
ysign=-ysign;
}
if (!cast->single) {
x=x-ffloor(x);
y=y-ffloor(y/SQRT3)*SQRT3;
if (x>0.5){
x=1.-x;
xsign=-xsign;
}
if (y>SQRT3_2) {
y=SQRT3-y;
ysign=-ysign;
}
}
/* Now we have to check only two circles at (0,0) and (1/2,sqrt(3)/2) */
dist2=x*x+y*y;
if (dist2<=size2) {
if (cast->smooth) {
val=fsqrt(size2-dist2)/cast->size;
result[0]+=val;
if (cast->bump) {
result[5]+=-xsign*x/cast->size;
result[6]+=-ysign*y/cast->size;
}
} else {
result[0]+=1.;
if (cast->bump && dist2>isize2) {
if (dist2<EPS) dist2=EPS;
result[5]+=-xsign*x/dist2*BFAC;
result[6]+=-ysign*y/dist2*BFAC;
}
}
} else if (!cast->single) {
x=0.5-x;
y=SQRT3_2-y;
dist2=x*x+y*y;
if (dist2<=size2) {
if (cast->smooth) {
val=fsqrt(size2-dist2)/cast->size;
result[0]+=val;
if (cast->bump) {
result[5]+=xsign*x/cast->size;
result[6]+=ysign*y/cast->size;
}
} else{
result[0]+=1.;
if (cast->bump && dist2>isize2) {
if (dist2<EPS) dist2=EPS;
result[5]+=xsign*x/dist2*BFAC;
result[6]+=ysign*y/dist2*BFAC;
}
}
}
}
}
int plugin_tex_doit(int stype, Cast *cast, float *texvec, float *dxt, float *dyt)
{
float x,y;
x=texvec[0];
y=texvec[1];
if(cast->noise>0.001) {
x+= hnoise(cast->noise, texvec[0], texvec[1], texvec[2]);
y+= hnoise(cast->noise, texvec[1], texvec[2], texvec[0]);
}
result[0]=0.;
result[5]=0.;
result[6]=0.;
result[7]=0.;
calc_dot_value(cast,x,y);
if (!cast->noaalias && dxt && dyt) {
float offx=fabs(dxt[0])+fabs(dxt[1]);
float offy=fabs(dyt[0])+fabs(dyt[1]);
calc_dot_value(cast,x+offx,y);
calc_dot_value(cast,x,y+offy);
calc_dot_value(cast,x+offx,y+offy);
result[0]/=4.0;
result[5]/=4.0;
result[6]/=4.0;
}
if (cast->bump)
return 2;
else
return 0;
}
# Make annotations on the active data
bpy.ops.gpencil.draw(mode='DRAW', stroke=[])
stroke=[{"name":"", "pen_flip":False, "is_start":True, "location":(0, 0, 0),"mouse":(0,0), "pressure":1, "time":0}]
bpy.ops.gpencil.draw(override,'INVOKE_REGION_WIN',mode='DRAW_POLY', stroke=[{"name":"","size":5, "pen_flip":False, "is_start":True, "location":(0, 0, 0),"mouse":(0,0), "pressure":1, "time":0}])
bpy.ops.gpencil.draw(mode='DRAW', stroke=[{"name":"", "pen_flip":False, "is_start":True, "location":(0, 0, 0), "mouse":(x,y), "pressure":1, "time":0}])
... но если конструктивно и по теме - есть проблема (да её создали программисты), но есть и решение (его придумали тоже программисты), пользуются все кто может ...Не знаю истинного положения, но, есть подозрение, что тот, кто всё же может - это один сумасшедший из тысяч тех, что пользуются аутодеском
... этого не знаю, и даже не знаю Розендаль vs Столлман ...А, я знаю, что на сайте Поврея всегда очень оживлённо, всегда помогут, но, когда я им принёс экспортёр с нодами, с превью, от меня открестились, в буквальном смысле этого слова. Там никому не нужен Блендер, и, у меня есть основания понимать их. Постоянство Блендера в его непостоянстве и нестабильности.
// 'Hello World!' program
#include <iostream>
int main()
{
std::cout << "Hello World!" << std::endl;
return 0;
}
... :) ...Цитировать... а ты раньше использовал плагин "Vectex: SVG vector texture plugin for Blender"? ...да понятно, о чем ты...
... отвечу в твоем духе: а ты всегда используешь командную строку при запуске Blender?...и нафиг она нужна вообще?
... отвечу в твоем духе: а ты всегда используешь командную строку при запуске Blender?...и нафиг она нужна вообще?Вмешаюсь в вашу душевную беседу. :)
konsole -e /home/leonid/bin/blender-2.72b/blender
>> На самом деле изучение Блендера должно начинаться сКогда насилуют детей - это плохо, но и мышкой во вьпорте много не натыкаешь, даже, если у тебя совершеннейшая техника. Опенсорс хорош тем, что его можно использовать готовый, а можно самостоятельно модернизировать перед использованием. Подозреваю, что на работу в крутую студию быстрей возьмут хорошего программиста, нежели талантливого выдавливателя полигонов мышкой...
... Друзья, помните была такая байда - "линукс в школе" , по сути очередное жлобство, денег на детях сэкономили ...
... так вот сейчас, судя по тому количеству и составу вопросов, которые задают школьники на различных форумах по Blender, скоро потребуется отделение блендерпии для ушибленных и поколоченных блендером в школах (и вузах кстати) ...
... но детей реально жалко - заниматься блендер из под палки, из страха получить пару или быть отчисленным, при полном отторжении и неприятии, беспредел ...
Осталось дело за малым: изучить С, ОSL и замутить кнопку "нарисуй красиво" :) Но художники - не программисты, а программисты далеко не художники. Выйдет лажа...Не выйдет. Ты исключаешь вариант хороший художник - программист. Мы привыкли разделять, узкоспециализировать, но, вероятно, будущему человечества это не нужно. Эволюция сделает своё дело и отберёт тех, у кого семь пядей во лбу. Ты только художник - бери веник, ведро краски и крась. Ты программист - программируй инфу РЖД. Ты художник и программист? Айда фильмы делать...
Хорошо, раз уж такая тема пошла про пользование... Я писал на первой странице про скрипт BLAM. Одно время как я только не извращался, что бы совместить фото с 3D, пока его небыло. И для Кетчупа плагины экспорта камеры искали и проче... Почему этого нет до сих про в Блендер, а упор сделан на каке-то няшные кнопачки и менюшки?Дак вот так и получается - тебе надо, ты и пиши. Как я напишу, если, в принципе, я даже не понимаю о чём речь? Кому-то нужен принтер, мне, что купить принтер, написать, чтоб кому-то угодить?
Ну и про какую конкуренцию с проприетарнеым софтом можно вообще говорить тогда?Про конкуренцию можно говорить, если создатели Блендера где-то и когда-то говорили, что они хотят конкурировать с проприетарным софтом. Если они такой цели не преследовали, то конкуренция - это лишь плод нашего воображения. Думаю, что они преследовали цель - найти самих себя. Блендер - это их реклама.
1. Нестабильность с API
2. Наплевательское отношение к сторонним разработчикам, т.е к их вкладу в развитее
3. Пофигизм по отношению к пожеланиям простых пользователей