`
ienown
  • 浏览: 7227 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

flash3d教学之基础知识01-drawTriangles绘制三角形[转]

阅读更多

转载 原文为 http://www.pan3d.me/tutorial/?p=133#more 作者 Pan3d.Me

①. 这是最基础的绘制作三角形的函数, drawTriangles  我们要做的是画出一个三角形,并对应该贴图

//三个坐标;对应该FLASH 舞台
_triangles.vertices.push(0, 0);
_triangles.vertices.push(0, 200);
_triangles.vertices.push(400, 200);
//三个贴图坐标 ; 说明, 贴图的坐标是按图像的比例而得到的。
_triangles.uvtData.push(0, 0);
_triangles.uvtData.push(0, 1);
_triangles.uvtData.push(1, 1);
//对应该顺序;
_triangles.indices.push(0, 1, 2);
//能过画图函数将三角形画出来
_tempmc.graphics.beginBitmapFill(_Bmpsource);    //贴图文件,BitmapData
_tempmc.graphics.drawTriangles(_triangles.vertices, _triangles.indices, _triangles.uvtData, TriangleCulling.POSITIVE );
以上是画一个三角形的的基本组成部份。 就现在的3D对象,不论有多复杂,都是基于 三角形来组成的。

②.  接下来我们试着去改变一下里面的坐标,你就可以一个三角形变形,


看图,可以我们将整个图形向右移动了 300像素,另一个点去上移了一半,

代码的变化,

_tempmc.x=300  // tempmc的坐标变成了 300

_triangles.vertices.push(0, 0);
_triangles.vertices.push(0, 200);
_triangles.vertices.push(300, 100);

//它的Y 坐标从原来的 200移到了 100 ,借此我们可以了解到在FLASH 舞台上的Y 坐标向上是减,与我们平时所学到的向上是加正好相反,有后要注意这个细节,就是我们做3D的其它模形时,他的Y坐标是向反的 ,现在只要观查变化就可以了

③. 再接下来我们试着去改变贴图坐标,


一定还是应该先对比上一张图的变化,简单的就是绘制的面积一样大,但改贴图坐标后的图像缺了一部份代码变化部分。

_triangles.uvtData.push(0, 0);
_triangles.uvtData.push(0, 1);
_triangles.uvtData.push(0.5, 0.5);
可以看出第三个贴图的坐标,从 (1,1) 变到了 (0.5,0.5) 你对应该一个原始图像(在库里),就不难理解了

④. 最后我们来试着去改变
_triangles.indices.push(0, 1, 2);
在这里要理解的是,它与 TriangleCulling 有显示有关联
在这里,简单是用顺时钟,和逆时钟 来确定三角形是不为可视
_triangles.indices.push(0, 1, 2)=_triangles.indices.push(1, 2, 0)=_triangles.indices.push(2, 0, 1);
如果你改变了 TriangleCulling 的属性为 NEGATIVE 那么三角形 的排列就要反着来,
_triangles.indices.push(0, 2, 1)=_triangles.indices.push(2, 1, 0)=_triangles.indices.push(1, 0, 2);
——在这一简单的例子里,只是为了弄清楚这个画图的基本参数的变化会出现什么样的图像

 

  • 大小: 57.2 KB
  • 3.rar (143.4 KB)
  • 下载次数: 6
  • 大小: 51 KB
  • 大小: 36.9 KB
分享到:
评论

相关推荐

    flash3d教学之基础知识02-drawTriangles绘制两个三角形[转]

    在本节“flash3D教学之基础知识02-drawTriangles绘制两个三角形”中,我们将深入探讨Adobe Flash中的3D图形渲染技术,特别是如何使用`drawTriangles`方法来创建基本的3D形状,如三角形。这篇教程适用于对Flash编程有...

    Adobe Flash 11 Stage3D游戏开发指南-源代码

    每个顶点包含位置、颜色、纹理坐标等信息,这些信息通过Context3D的drawTriangles方法绘制到屏幕上。 4. **纹理管理**:Stage3D提供了高效的纹理处理能力,可以加载、更新和应用纹理。纹理是3D渲染中的重要组成部分...

    flash10 3d 引擎

    开发者可以向这些缓冲区写入顶点坐标、颜色、法线和纹理坐标,然后通过`Context3D`的drawTriangles方法将它们绘制到屏幕上。 除了基本的3D图形绘制,Flash 10还支持3D变换,如旋转、平移和缩放,这主要通过`Matrix...

    stage3d参考

    6. **绘制**:调用`Context3D.drawToBitmapData`或`Context3D.drawTriangles`等方法,提交渲染命令。 7. **交换缓冲区**:完成一帧渲染后,通过`Context3D.present`交换缓冲区,将结果显示在屏幕上。 四、Stage3D...

    Molehill API分析

    - **绘制三角形**:使用 `context3D.drawTriangles(indexBuffer);` 方法根据索引缓冲区中的索引值绘制三角形。 - **呈现画面**:最后通过调用 `context3D.present();` 更新屏幕上的显示内容。 #### 五、总结 ...

    draw-triangles-2d:使用 Canvas2D 上下文绘制简单复形

    绘制三角形-2d 使用 Canvas2D 上下文从单纯复形绘制索引三角形。 位置和单元格如下所示: { positions : [ [ 25 , 25 ] , [ 50 , 50 ] , ... ] , cells : [ [ 0 , 1 , 2 ] , [ 1 , 2 , 3 ] , ... ] } 演示: ...

    基于as3 stage3d 的基础2d渲染 练手的时候写的,跟opengl原理很像

    4. **绘制命令**:使用`Context3D.drawToBitmapData()`或`Context3D.drawTriangles()`等方法,将几何体和材质提交给GPU进行渲染。 5. **渲染循环**:在每一帧,更新图形状态,调用`requestRender()`触发渲染,并在`...

    as3 molehill实例

    5. 渲染循环:在每帧更新时,清除屏幕,设置渲染状态,如投影矩阵、视口大小等,然后使用`drawTriangles()`方法绘制3D几何形状。 6. 更新3D旋转:根据用户的输入或时间改变,更新模型的旋转角度,重新计算顶点坐标...

    as3-blog-source-code:我(已不复存在的)FlashActionScript 博客上帖子的源代码

    使用 Drawtriangles绘制 3D 形状:使用 graphics.drawTriangles 渲染 3D 形状。 将图像保存为高清:将位图对象转换为 JPEG 或 PNG 并保存。 创建音频可视化器:从音频中提取声音数据。 PixelBender 过滤器:如何...

    flash as3.0代码优化

    - 利用 `drawPath`, `drawGraphicsData`, `drawTriangles` 等方法进行批量绘图,减少绘制调用次数。 - 使用 `setVector()`, `setPixel()`, `setPixel32()` 等函数时,注意锁机制,避免并发问题。 ### 8. TextField ...

    Flash优化技巧整理

    ### Flash优化技巧整理 #### 一、Flash游戏中ActionScript代码优化 **1、脚本运行速度的检测:getTimer();** - **getTimer()**: 使用`getTimer()`方法可以测量脚本的运行时间,这对于评估特定操作的效率非常有用...

    focalLength

    新特性包括支持Pixel Bender(Hydra)滤镜,使用矢量(类型数组)提升处理速度和内存利用率,支持非零风向规则,三角形绘制API以及3D透视渲染。这些改进使得开发人员能够创建更高级的图形和动画,尤其是在游戏开发和...

    Flash 游戏优化技巧- (adobe平台技术经理-黄竣制作)

    3. **新的绘图API**: 新版本的Flash Player提供了更为高效的绘图API,包括`drawPath()`、`drawGraphicsData()`和`drawTriangles()`等方法。这些方法虽然不会直接改善显示性能,但是可以大幅度减少代码量,从而提高...

Global site tag (gtag.js) - Google Analytics