V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jie170601
V2EX  ›  随想

由 3D 建模想到面向对象

  •  
  •   jie170601 · 2 天前 · 655 次点击

    想做个简单的 2D 帧动画,但是从小就没有绘画天赋,可以理解透视、明暗交界线这些概念的原理,但是上手就不知道怎么表现了。于是做 2D 帧动画这个事情,陷入了困难。

    看到一些建议,使用 3D 软件进行建模,然后转成 2D 图片。3D 建模有它的优势,描述模型更接近物理世界,我日常看到的东西是多长多宽多高,告诉软件就好了,不用自己去想,这个东西映射到纸面上,是个什么样的结构,哪里该有阴影,哪里有高光。

    很快发现了先建 3D 模型,再根据需要导出 2D 图片的又一个优点,模型的复用性很高。试想我需要一个人物各个方向的图片,直接绘画,同一个人物需要重新画很多遍,但是我的 3D 模型只需要建一次,然后低成本地调整姿态,就能生成一个新的图片。

    还有,同一张图画,很难两个人同时各画一部分,但是拆分成多个 3D 模型,就能多个人同时开工了。

    稍微有点职业敏感性,想到这个设计思想,可以移植到程序设计上,又感到好像已经有了这么个东西,难道它叫面向对象?

    假设在做一个电影购票系统,平时首先想到的,还是直接描述这个业务,比如先建一张用户表,再建一张电影票表,再建一张购票表,关联起来。

    转换一下视角,想想买电影票这个过程,我可能要身份证证明我是我,可能要手机接收验证码、支付,然后我会获得一张电影票,我会拿着电影票给工作人员看,或者放机器上扫描……

    管你这系统那系统的,我先描述一下我知道的身份证:有基本信息,有人像、国徽面的样式,还能被扫描。我不知道系统要哪些东西,我把我知道的身份证先尽量精确的描述出来。

    同样的电影票:有电影场次、座位等相关的内容,有外观、材质这些。日常生活中看到是啥样的,我就照搬上去。

    后面要对接打印系统,只要增加一个打印机的对象,打印机需要的数据,早早就冗余在那了,尽管一开始我没考虑过打印的需求。

    用更接近物理世界的方式建模+大量的数据冗余。一直以来,编程讲究时间换空间,空间换时间,偶然参得这时间空间双输的邪修之法,道友请了。

    3 条回复    2025-09-05 13:12:50 +08:00
    panlatent
        1
    panlatent  
       2 天前
    道友写的有点像散装散文,让 GPT 总结了两遍,所以你想表达的是:

    “👉 通过“3D 建模 → 2D 动画”的启发,他领悟到一种更贴近现实、冗余但灵活的建模方式,与面向对象设计理念不谋而合。”
    jie170601
        2
    jie170601  
    OP
       2 天前
    @panlatent 哈哈追剧上瘾没忍住
    andyskaura
        3
    andyskaura  
       2 天前
    你搁这儿写 java 呢?
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2643 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 11:58 · PVG 19:58 · LAX 04:58 · JFK 07:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.