ArtStamper3D 一体化工具





0/5 (0投票)
用更简单的方式绘画,包括老式的盖章技术。
以不同的方式创作艺术
大多数人认为自己不是艺术家,那么为什么不创建一个与众不同的绘画程序呢?与其制作模仿纸上绘画的典型艺术软件,不如创建一个应用程序,让您能够表达艺术的一面,而无需任何天赋。
ArtStamper 是一款为“全能一体式 PC”的“娱乐类别”设计的应用程序,它将允许您使用更简单的方法绘画,包括老式的盖章技术。是的,您可以选择预设的背景图像,然后在您喜欢的任何地方盖上预先绘制的对象,从而构建一幅完整的图画。这非常适合幼儿,但成年人也会喜欢这个应用程序。
该应用程序还将提供更高级的绘画方法,包括通常在普通绘画程序中找到的方法。这个应用程序将采用拖放式设计,非常适合触摸屏 PC。它甚至可以用于更实用的目的,供成人进行设计和布局。想象一下,父母使用该应用程序来规划房子的景观。父亲甚至可以用它来规划新办公室的工作。
这款软件有什么不同之处?
该应用程序还将包括动画功能。对象(图章)不必是固定的图像,还可以支持帧动画。您的图片可以活起来。如何在图片上叠加真实的 3D 对象?这款软件的目标是突破艺术和设计的界限,但同时又足够简单,即使是小孩也能创作出令人兴奋的图片和动画。
这款软件的真正不同之处
这款软件的真正不同之处在于它的开发方式以及它在最少硬件上以最小的占用空间运行的独特能力。虽然本次竞赛中使用的全能一体式 PC 将拥有强大的硬件支持,但试想一下,对于那些使用基于 Intel Atom 的 SOC(片上系统)的未来“轻量级”全能一体式 PC 来说,可以做些什么!想象一下,一个图形应用程序可以在仅配备 2GB 内存的 Atom CPU/GPU 上轻松运行,并且占用空间如此之小,以至于可以使用更小的 SSD(固态硬盘)!
这款软件的目标将是“快速流畅”,即使在最少的硬件上也是如此。
将要使用的开发工具
该软件将使用 PowerBasic 原生代码 32 位编译器 for Windows 创建。PowerBasic 专为构建快速、小型的 Windows Intel PC 应用程序而设计。PowerBasic 是少数用汇编编写的现代编译器之一,编译速度快。快速的编译速度对于使用更敏捷的方法进行更快的开发非常重要。使用 PowerBasic 创建的可执行文件不需要任何运行时,不需要 .net 框架,并且仅使用 WIN32 API。
此类项目的最大挑战是所有底层图形以及对 RAD 开发系统的需求。这可以通过使用 EZGUI 5.0 Professional 开发系统来解决。这个工具是一个 GUI 框架,专为与 PowerBasic 编译器一起使用而设计,它本身是用 PowerBasic 编写的。GUI 引擎包含几个小的 DLL。核心运行时 DLL 只有大约 700KB,而 3D 图形控件是一个大约 225KB 的 DLL。该框架不使用 DirectX,而是使用 WIN32 GDI,并使用 OpenGL 2.0 进行 3D 动画。
本文的作者也是这个 GUI 框架的开发者,所以他将编写应用程序中的所有代码,即使使用了外部 GUI 框架。
那么,这个开发系统提供了什么,使得这个应用程序不仅可能,而且能在短时间内完成?
应用程序的核心是图形,所以应用程序中的两个自定义控件将用于大部分用户界面。第一个是框架的 Canvas 控件。这个控件为开发提供了独特的基石。它支持双缓冲,每个图像使用两个缓冲区。缓冲区可以定义为 DDB(设备相关位图)以获得更快的显示,或者定义为 DIB(设备无关位图)以获得更底层的控制。DIB 引擎允许对所有像素进行底层访问,而无需调用任何 GDI 函数。通过使用低级指针直接访问像素,可以为构建绘图引擎提供更多选择。
Canvas 控件还内置了一个 2D 专有 Sprite 引擎,因此 2D 精灵可以移动/显示/隐藏,动画(帧动画),翻转,甚至抗锯齿和 alpha 混合。精灵引擎可以在最少的硬件上以不错的帧率动画数百个精灵,而无需 DirectX。
该框架还有一个图形引擎,用于绘制各种典型的图形元素,包括位图、图标、图像列表、富文本、渐变、文本、形状等。Canvas 控件还有一个效果引擎,因此绘图命令可以首先绘制在效果缓冲区上,然后进行 alpha 混合和抗锯齿处理到 Canvas 上。
要添加真实的 3D 动画,该软件将使用 glCanvas 控件而不是普通的 Canvas 控件。glCanvas 控件基于 OpenGL 2.0,并内置了自己的 3D 脚本语言。这个控件非常独特,因为它是一个混合控件,基于 2D Canvas 控件。它拥有 2D Canvas 的所有功能,并且在顶部增加了一个 3D 层来显示 3D 对象。3D 引擎支持 STL 文件格式,用于高多边形计数 3D 模型,通常用于 3D 打印。它还支持各种 3D 原始对象。
GUI 框架还有一个 Turtle Graphics(海龟绘图)引擎,用于定义基于矢量的图像,使用易于使用的 Turtle Graphics 脚本语言。孩子们尤其喜欢设计自己的 Turtle Graphic 对象,然后可以在应用程序的任何绘图中进行使用。
Turtle Graphics 脚本语言可以暴露给最终用户,用于定义您自己的 Turtle Graphic 矢量图像。脚本很容易定义,如下所示
CASE 0
' Draw Lines
D$="V1,602,322;"
D$=D$+"U0;F0;P3;M10,10;L590,10;P10;W30;M20,40;L580,40;W4;P5;M10,70;L100,90,90,4;"
D$=D$+"P6;M220,70;W20;L100,150,120,3;P1;W15;M320,70;L40,90,45,8;"
D$=D$+"P3;W12;M500,100;L40,180,60,6;P1;W15;M10,210;L110,310;M110,210;L10,310;"
D$=D$+"P9;W50;M200,210;L570,290;P13;L200,250;P14;L400,290;"
D$=D$+"P2;W15;M530,200;L45,180,30,12,2;W3;M50,47;P1;L20,45,90,36,1;"
CASE 1
' DRAW CIRCLES
D$="V1,602,322;"
D$=D$+"U0;P1;F0;B4;W8;M10,10;E300,200,0;H13;M50,50;P2;W3;E300,200;H0;P2;M340,10;B14;W15;E100,100;"
D$=D$+"H3;P2;W1;M360,130;B10;E80,120;H0;W5;P1;B3;M10,210;E400,100,4;M450,30;E121,121,7;"
D$=D$+"M480,200;E100,100,17;M495,215;E70,70,12;W3;B15;M503,220;E15,15;M543,220;E15,15;"
D$=D$+"X1;M530,45;P1;B5;E120,80;P2;B16;E60,40;"
CASE 2
' Draw Rectangles
D$="V1,602,322;"
D$=D$+"U0;P1;F0;B4;W4;M10,10;R300,200;H13;M50,50;P2;W3;R300,200;H0;P6;M400,10;B3;W15;R100,100,10,10;"
D$=D$+"H3;P2;W1;M400,130;B10;R80,120;H0;W2;P1;B15;M10,270;R500,45,100,20;"
CASE 3
' Draw Scalable Text
D$="V1,602,322;"
D$=D$+"P1;C0,0,128;P2;C200,200,255;G1,2,1;P1;C255,255,255;"
' fonts supported are:
' Arial
' Courier New
' Times New Roman
' The R macro draws the text last defined by the T macro
' instead of a rectangle
' EZGUI will center the text within the rectangle
D$=D$+"M30,30;TTimes New Roman,BI|Hello There!;R542,266;"
图形库
像这样的应用程序还应该附带某种图形库,包含预定义的图像和图章。我和我的妻子都具有艺术能力,并且拥有一套不错的图形艺术开发程序,可以快速创建独特的艺术内容供应用程序使用。我们可以使用 Corel Draw、Corel Paint、Anime Studio 等应用程序来创建应用程序的初始内容。我最喜欢的用于使用 3D 创建独特逼真背景的工具是 Vista Pro 4.0。例如,它可以创建逼真的风景,如下所示
开发者
我编程已经超过 25 年了。我第一次接触编程是在 1975 年,在 20 世纪 80 年代,我在德州仪器 TI-99 家用电脑上自学编程。Commodore 64 是我第一次真正使用编译器进行开发,我甚至使用编译器(Abacus Basic 编译器)编写了自己的编译器,以便能够构建我的第一个家庭友好型视频游戏。在此过程中,我学习了 6502 机器语言。我最早的商业编程是在 CPM 上使用 Kaypro 便携式 PC 进行的,后来转向 IBM 兼容机。我为本地小型企业编写自定义软件,如家具店、录像租赁店、汽车维修店,甚至当地的治安官办公室。我还为本地行业编写软件。我编写了用于质量控制、工程、会计、销售点和作业跟踪的应用程序。
近年来,我的公司为 PowerBasic 市场开发了程序员工具。十多年来,我一直是高级 WIN32 API 程序员,为编程开发 GUI 引擎和拖放式可视化设计器/代码生成器。我的 GUI 引擎是许多商业软件产品的骨干。这里有一个很好的例子可以在这个 YouTube 视频中找到
将视频暂停在约 4 分 33 秒处,您会注意到笔记本电脑上使用的软件是他们正在使用的一些硬件的控制应用程序。
该软件由英国的 Fathom Systems 开发。
他们使用我的 EZGUI Professional 开发工具,我的 GUI 引擎是他们为配合他们为客户开发的产品而编写的许多应用程序的骨干,包括上面视频中的雪佛龙。