Giter Site home page Giter Site logo

rene--magritte-in-processing's Introduction

动静之间

(互动媒体课程作业,以下全是个人观点不喜勿拍~)

PART 1.梦与幻想

超现实主义艺术是一门描绘梦的画笔。

梦是无形的,超现实主义画家将它们留在纸上。放弃经验记忆,放弃普遍逻辑,着重于描绘人们内心的世界,超现实主义艺术以现实的对立面出现,给身处现实世界的人们以美感的慰藉。

记忆的永恒

《记忆的永恒》是达利(salvador dali)最负盛名的一幅画,也是超现实主义艺术最具代表性的作品

达利一生中创作了无数难以解读的作品。除了油画外,他还为故事书创作插图,也留下了一些雕塑作品。在他的油画和插画作品中,反复出现百合花与蚂蚁、极尽奢华的美食和细长四肢的怪兽。令人感到讽刺的是,超现实主义作品通常倾向于剥离意向的现实意义,但最著名的反而是这样一幅“仿佛能解释出一些意义”的作品。

作为一位成功自我营销的艺术家,达利满足一切大众对于艺术家的幻想:英俊、自恋、离经叛道。(表现得像个“艺术家”会比较容易出名,这样的例子还有卡拉扬和杜尚) 选了一幅很具有代表性的作品。去年达利插画手稿在国内展出,三百多张插画都是类似的画风。放弃逻辑性的表达使这样的绘画很像AI生成的作品

与达利对意象本身的重构不同,同时期、同流派的马格里特(René Magritte)更倾向于探究事物之间的关系。他的作品通常沉静而忧郁:

the son of man

《the son of man》,马格里特的代表作之一,同样难逃被解读一番的命运

作为与达利齐名的画家,马格里特在国内似乎鲜为人知。他没有花太多精力去经营自己在公众眼中的形象,时至今日,他的经历仍像诗一样神秘。马格里特像梵高一样,在去世后才为世人所重视(好在他生前没有梵高那么惨),但他的作品对超现实主义艺术和当代插画都构成了深远的影响。

the son of man

马格里特的典型作品。他喜爱的意象只有几个,形象也很稳定:西装男人、飞鸟、天空、新月和绿苹果。这些意象能覆盖他十之八九的作品,也能打动人们的内心。

对比之下可以感受到这幅作品有一种呼之欲出的静谧。

PART 2.动静之间

为什么同样是静态的绘画作品,不同画家的笔下能产生动静之别呢?是因为他们表现的画面有动静之别吗?

Jarek Puczel. 奔跑的孩子和即将破碎的肥皂泡。转瞬即逝的场景,寂静的观感。

Alexei Antonov. 虽然场景是静物,仿佛能看到云卷云舒的天空和不断升起的太阳。

可见画面感的动静之别不在于画家意在表现的场景,而在于色彩与形状的把控。色彩变化快、难以形成大面积色块的画面通常富有动感;颜色稳定,边界规整的画面显得更加静谧。

这也就是为什么莫奈和梵高的画富有动感。印象派的画家们喜欢用破碎的色块来编织画面。

Claude Monet-83 埃特尔塔西的悬崖,这幅画的海报贴在我宿舍的墙上。

以上内容仿佛和我的作业没什么关系。


PART 3.我的实现

重新来看马格里特,我挑选了两幅作品,一动一静,来创作他们的动态版本.

富有动感的作品。形态各异的人飘在空中。

这幅作品可以说是我在原作的基础上加上自己的理解了。原作西装男可能是漂浮在空中,可能向上或向下,但以我的理解是倾向于下落的。马格里特的画作中很少见积极、活泼的情绪,下落比较符合他作品冷静的风格。

气氛静谧的作品,从蓝色的主色调和平稳的用色可以看出。

马格里特很喜欢把天空作为非现实的一部分,为天空增添动态效果能让画面的虚幻感更强烈。闪烁的烛光和漂浮的云不会因为动起来而破坏了原来静谧的感觉。

强烈建议直接在processing里运行这两个文件,gif图有丢帧的情况。

实现详细

work1

每个跳楼下落的人是一个类的实例化对象:

class Man(object):
    def __init__(self,xpos,ypos,idx,siz):
        self.x=xpos
        self.y=ypos
        self.idx=idx
        self.siz=siz

idx对应了不同姿势的人,一共有五种。

siz是人的大小。可见原作有三层,其中最后一层在红顶房屋之后,其余两组在房屋之前。

这部分的逻辑大概是:

  • 指定三个西装男矩阵的横纵间隔和大小,随机化idx
  • 每轮画完一个西装男,对self.y更新

work2

好看的云,画了一点时间。 云是由一组不同位置、不同大小、不同透明度的圆组成的。这些圆是以一生二的形式随机生成的,实现的数据结构是粒子系统。

class Particle
{
  PVector position;
  float oppacity;
  float w;
  color clr;
  boolean alive;

对于每一个圆,有以上5个属性。w是圆的半径,clr是云的颜色,alive是用来标记这个圆是否已经“生小圆”了。

  protected Particle(float x, float y, float wth, color c, float o)
  {
    position = new PVector(x, y);
    w = wth;
    clr = c;
    oppacity = o;
    alive = true;
  }

初始化粒子

public void reproduce()
{
  if(w > 1)
  {
    for(int i = 0; i < 2; i++)
    {
      float newX = position.x + random(-w, w);
      float newY = position.y + random(-w/2, w/4);
      float r = random(10);
      float newW = w - r;
      if(newW < 1)
        newW = 1;
      particles.add(new Particle(newX, newY, newW, clr, oppacity));
      alive = false;
    }
  }
}

生小圆的过程。新建的小圆在原来点周围随机地生成,半径减小。被放到与大圆同一个数组里。新的w<1以后就不拓展了。

public void drawParticle()
{
  fill(clr, oppacity);
  ellipse(position.x, position.y, w, w);
}
}

把圆画到sketch上。

画云的过程:

  pushMatrix();
  translate(trX,0);
    for(int i = 0; i < particles.size(); i++){
      Particle p = (Particle) particles.get(i);
      p.drawParticle();
      
  }
  popMatrix();

我把遍历数组的loop放慢,可以看到云生成的过程:

trX是云移动的x值。每轮更新。 无论创建多少朵云,组成这些云的小圆只存在一个统一的数组中。

闪烁的月光/烛光:

  float Fsiz=sin(lop)+5;
  float Insiz=1;
  for(int i=0;i<10;i++){
     fill(color(206,222,206), opt);
     ellipse(width/2, 200, Fsiz*Insiz, Fsiz*Insiz);
     Insiz+=2;
  }
  lop +=0.2;
  if(lop>2*3.141){
    lop=0;
  }

通过画一系列半透明的同心圆来实现的渐变效果。因为是半透明的原作中笔触的质感也得以保留。 Fsiz是控制一系列圆的统一大小的参数,控制不同帧中光圈的大小,达到一闪一闪的效果。 Insiz是每loop中各同心圆的半径。

手绘作品

我应该用IPad画的这个水彩画画好丑qaq

PART4.手绘与码绘的异同

(原谅我的不配图)

之前的报告提到手绘是降采样的过程,码绘是升采样的过程,这次想再拓展一下。

先从最简单的绘画开始,如果我们可以定义绘画是下列操作的集合:

  • 观察物体
  • 抽象物体
  • 使用特定工具表现上述的抽象

我们再定义编码解决问题(不限于码绘)的过程:

  • 定义问题的架构和输入
  • 寻找输入与期望输出之间的映射关系
  • 编码完成上述映射

那我们可以尝试把人当做计算机,把问题当做绘画,我们获取可以得到下面这个类比结果:

  • 抽象:抽象的过程是从物体到抽象概念的映射。
  • 表达:使用工具把抽象概念表达出来的过程是一种映射。

既然人作画的过程也可以合理地看做是一些映射,那么码绘的过程可以概括为机器对上述两种映射的人力的替代。

比如用声音画画可以被描述成以下两个映射:

  • 声音---降采样--->声波信号 (抽象)
  • 声波---人为规则--->画面 (表达)

那么对于现在流行的图像风格化可以定义为这样的操作:

  • 风格化图像---NN或其他规则--->元信息 (抽象)
  • 给定图像---元信息--->新的风格化结果 (表达)

有的时候抽象的结果是人完成的,我们观察物体,得出一些规则,把他们输入计算机让计算机进行绘制~~(比如某舍友画的抽动的鸡)~~

  • 物体---人为观察--->规则 (抽象)
  • 交互信息---规则--->画面 (表达)

相同之处

手绘和码绘都是对输入信息I进行的先抽象,再表达的过程。写成我喜欢的形式:O(S(I))

这个markdown是不是没有latex公式

不同之处:

手绘,我们观察的物体可以是风景、是风、是气味或者心情。抽象的过程包含了创作者之前的体验,可以看做码绘抽象函数里面的正则项(不)

码绘,观察的物体必须能以数据的形式给出。比如最基本的图像是三维矩阵,声音是含时间序列的向量等等。

这也就是码绘对于手绘的不足之处,很难表达情感信息。但码绘的优势在于他的映射都是在数学上唯一、确定的。他不会因人的改变而改变,(鲁棒性强!哈哈哈哈)

一些感想

  • 既然我永远不会成为TA方向的大佬,在艺术与技术之间找点乐子也不枉学了数字媒体技术专业。
  • 这次实现没太考虑算法方面的创新,单纯想对自己喜欢的作品再创作而已。
  • 我真的无法get到达利的点,上次去看他的画展感觉其实就是瞎画的吧(不)
  • 上面提到的Antonov是超写实流派,挺喜欢的。还有一位叫张青的画家,之前看展的时候好像和冷军展在一起的,他的静物也给人一种很平静的感觉 >w<
  • 所以说起来画也好,电影也好,我还是更愿意接受国内的作品,大环境相同就很容易引发共情。于我来说,艺术作品的情感价值也要高于它是不是“好看”。变形金刚就很难有那种“虽世殊时异,所以兴怀,其致一也”的感觉,特效总会发展的。但看到丰子恺、老树他们时,我总有一种“是的,我活在这里”的感觉,这种感觉就很好。
  • 等等是不是扯远了

参考资料:

https://en.wikipedia.org/wiki/Ren%C3%A9_Magritte https://en.wikipedia.org/wiki/Surrealism https://www.openprocessing.org/

rene--magritte-in-processing's People

Stargazers

HammerShaw avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.