游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3002|回复: 2

我想用ManualObject自己画一个圆柱,可是。。。

[复制链接]

3

主题

16

帖子

22

积分

注册会员

Rank: 2

积分
22
发表于 2007-3-23 13:59:00 | 显示全部楼层 |阅读模式
        ManualObject * cylinder = pSceneManager->createManualObject("cylinder_name");

        float const radius = 300,
                thickness = 300, // Of course this must be less than the radius value.
                accuracy = 0.04;

        unsigned point_index = 0;
        for(float theta = 0; theta <= 2 * Math:I; theta += Math::PI / (radius * accuracy)) {
                cylinder->begin("Examples/MyRocky", RenderOperation::OT_TRIANGLE_STRIP);
                cylinder->position((radius - thickness) * cos(theta - Math::PI / (radius * accuracy)),0,(radius - thickness) * sin(theta - Math::PI / (radius * accuracy)));
                cylinder->textureCoord(0,0);
                cylinder->position(radius * cos(theta - Math::PI / (radius * accuracy)),0,radius * sin(theta - Math::PI / (radius * accuracy)));
                cylinder->textureCoord(1,0);
                cylinder->position(radius * cos(theta),0,radius * sin(theta));
                cylinder->textureCoord(1,1);
                cylinder->position((radius - thickness) * cos(theta),0,(radius - thickness) * sin(theta));
                cylinder->textureCoord(0,1);
                cylinder->end();
                ///////////////////////////////////////////////////////////////////////
                cylinder->begin("Examples/MyRocky", RenderOperation::OT_TRIANGLE_STRIP);
                cylinder->position((radius - thickness) * cos(theta - Math::PI / (radius * accuracy)),1000,(radius - thickness) * sin(theta - Math::PI / (radius * accuracy)));
                cylinder->textureCoord(0,0);
                cylinder->position(radius * cos(theta - Math::PI / (radius * accuracy)),1000,radius * sin(theta - Math::PI / (radius * accuracy)));
                cylinder->textureCoord(1,0);
                cylinder->position(radius * cos(theta),1000,radius * sin(theta));
                cylinder->textureCoord(1,1);
                cylinder->position((radius - thickness) * cos(theta),1000,(radius - thickness) * sin(theta));
                cylinder->textureCoord(0,1);
                cylinder->end();
                ///////////////////////////////////////////////////////////////////////
                     //这下面代码是画柱的侧面的!!!可是textureCoord()怎么计算圆柱的纹理坐标呀?
                double u,v;
                cylinder->begin("Examples/MyRocky", RenderOperation::OT_TRIANGLE_STRIP);
                cylinder->position(radius * cos(theta - Math::PI / (radius * accuracy)),0,radius * sin(theta - Math::PI / (radius * accuracy)));
                this->GetUV(radius * cos(theta - Math::PI / (radius * accuracy)),0,radius * sin(theta - Math::PI / (radius * accuracy)),u,v);
                cylinder->textureCoord(u,v);
                cylinder->position(radius * cos(theta),0,radius * sin(theta));
                this->GetUV(radius * cos(theta),0,radius * sin(theta),u,v);
                cylinder->textureCoord(u,v);
                cylinder->position(radius * cos(theta - Math::PI / (radius * accuracy)),1000,radius * sin(theta - Math::PI / (radius * accuracy)));
                this->GetUV(radius * cos(theta - Math::PI / (radius * accuracy)),1000,radius * sin(theta - Math::PI / (radius * accuracy)),u,v);
                cylinder->textureCoord(u,v);
                cylinder->position(radius * cos(theta),1000,radius * sin(theta));
                this->GetUV(radius * cos(theta),1000,radius * sin(theta),u,v);
                cylinder->textureCoord(u,v);
                cylinder->end();
        }

/////////////////////////////////////////////////
请问如果计算圆柱侧面的纹理坐标呀?
sf_200732313597.jpg

3

主题

16

帖子

22

积分

注册会员

Rank: 2

积分
22
 楼主| 发表于 2007-3-23 14:37:00 | 显示全部楼层

Re:我想用ManualObject自己画一个圆柱,可是。。。

没人理,自己顶一下!

9

主题

26

帖子

32

积分

注册会员

Rank: 2

积分
32
发表于 2007-3-29 16:58:00 | 显示全部楼层

Re:我想用ManualObject自己画一个圆柱,可是。。。

我做过~邮箱yangyue811@yahoo.com.cn
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-4-13 00:36

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表