工作经历怎么写作?

随着网络的日益发展,越来越多的年轻人想从淘宝上淘到自己的第一桶金,圆自己的创业梦,财富梦!那么淘宝真的像我们想象中那么容易做,那么简单?
有这样一部分人,他们和绝大多数人一样有自己的淘宝梦。但是他们既不想过多的浪费自己正常的工作时间,又想从业余时间的兼职挣到一笔零花钱。那么这种想法可行么?
下面笔者就带大家去看看淘宝这种不同常规的经营方式:网店代理。
网店代理又可以叫做网店代销,是指某些提供网上批发服务的网站或者能提供批发货源的销售商,与想做网店代销的人达成协议,为其提供商品图片等数据,而不是实物,并以代销价格提供给网店代销人销售。
从解释中我们可以明确的了解到网店代理的含义。那么怎么才能做好网店代理,做好自己的淘宝大业呢?我们要明白它和我们日常做的实体店代理很不一样的,因为开网店还更需要花费心思去做的。所以要掌握好淘宝网店代理的一些方法,这些方法都是资深代理商总结出来的。
首先,要寻找货源,做好沟通
1、要开网店代理,我们肯定要为我们的网店选择一些好的商品,不然就是你做了也不定能取得成功。因为我们无法看到商品,所以我们务必要选择一家正规的网代厂家。
在你决定开网店以后,就会一直在网上找厂家的,等到你找到了一家自己看中的网站后,你就可以问他们是否支持网代? 他们支持的话,你就可以立马上架,在上架后我你就可以在论坛里学习一些别人的经验,谨防自己上当受骗。因此做代理的话,代理一家的东西一定得多方面考察下,不然等到上当受骗就晚了。做代理的话还要对自己的产品负责,也许你无法亲眼看到你的产品,但是要记得多方面去查实,这样的话做起来才会有前途。
2、要学会沟通问题。
开网店做过代理的人都很清楚沟通很重要,而且你不仅是要和买家进行沟通,也要和厂家进行沟通。有是时候买家会问你衣服有没有货?你就要马上去问厂家,要是厂家是做大生意的话,他们有时会很忙没有空回你,而你又不能让买家在那边等你,也不能直接说没有,这样的问题就会很尴尬。因此有的时候只能放弃了。很多人都因厂家的回复太慢与生意擦肩而过的。所以久而久之就会放弃那个厂家的,我建议大家直接去找总公司代理,因为开网店做代理的能找到总公司那当然最好了,不但价格有优势,而且质量有保证,查货比较方便,可以直接打电话问仓库就ok了。同时也会节约很多时间的。最重要的是他们上班时间长,到晚上一点都有在线。这样的话就很方便我们任何时候都可以跟他们沟通,就更有生意。
其次,做好店铺装修、同行对比,网络代销,不是店铺一开,产品一上架,我们就可以坐在电脑前坐等收钱,万事大吉。
1、精装细修
作为代理,我们本来就没有直接供销商铺上面的价格优势,更没有专业淘宝店铺时间上的优势。那么这个时候,我们要思考,如何让顾客选择我们,怎么扩大自己店铺的明显优势。对于店铺,我们就要精装细致,对比看看我们的同行的店铺,做出属于自己的东西,做到人无我有,人有我优,让顾客来了不愿走,走了再回头。
2、对比同行店铺
学习同行的店铺,看别人是如何做的,当然这个时候,我们看到的只是表层的东西。于是就需要我们透过现象看本质,同一件衣服,同一个价格,为何别人能日销百件,而我们做不到呢?我们看到我们的差距在哪里?通过这些差距来提高自己,来扩大自己的影响力!
最后、要做好推广和售后,推广就不用怎么说了,淘宝上有很多推广的方式(本人觉得这些没多大用)。
主要是售后,因为我们是网店代理,我们基本上不同货物接触,所以,我们要绝对保证产品的质量问题,做好退换货,做好售后维护工作。我们要明白这样一个道理,我们传递给顾客的既是我们的产品,也是我们店铺所有员工的信念!不要因为这样的一些小事损失了我们信誉。
当然,要真正做好网店代理,单单这些是不够的,我们要学习的还有很多,这里仅仅是一个流程而已!本人也是开网店的,做了快2年多,大家有什么不懂的可以联系我QQ,同行也可以相互交流经验!
编辑:nakake
猜你喜欢:
最新图文资讯
站长之家专栏推荐
增值电信业务经营许可证: 闽B2-号 - 北京公安局网监中心备案号: 95号 -
(C)CopyRight 2002- Inc All Rights Reserved. 站长之家 版权所有19826人阅读
&&&&& 本文实践自 Ray Wenderlich 的文章《》,文中使用Cocos2D,我在这里使用Cocos2D-x 2.0.4进行学习和移植,前者是用Object-C所写,所以移植到Cocos2D-x会有些差异,比如某些函数、某些功能不能跟原文一样直接实现,需另转换方法实现。之前已经对Cocos2D-x的安装以及简单使用进行了介绍,这里不再介绍,直接进入主题。
步骤如下:
1.新建Cocos2d-win32工程,工程名为&SimpleGame&,去除&Box2D&选项,勾选&Simple Audio Engine in Cocos Denshion&选项;
2.编译运行,可以看到如下图所示:
3.下载本游戏所需的资源,将资源放置&Resources&目录下;
4.游戏需要一个白色的背景,最简单的方法是使用CCLayerColor,将HelloWorldScene.h文件&HelloWorld&类改为如下:&
class&HelloWorld&:&public&cocos2d::CCLayerColor
首先添加玩家,让玩家位于左边屏幕中间,将HelloWorldScene.cpp文件的init函数,改为如下:
bool&HelloWorld::init()
&&&&bool&bRet&=&false;
&&&&&&&&CC_BREAK_IF(!&CCLayerColor::initWithColor(ccc4(<span style="color:#ff,&<span style="color:#ff,&<span style="color:#ff,&<span style="color:#ff)));
&&&&&&&&CCSize&winSize&=&CCDirector::sharedDirector()-&getWinSize();
&&&&&&&&CCSprite&*player&=&CCSprite::create(&player.png&,&CCRectMake(0,&0,&27,&40));
&&&&&&&&player-&setPosition(ccp(player-&getContentSize().width&/&2,&winSize.height&/&2));
&&&&&&&&this-&addChild(player);&&&
&&&&&&&&bRet&=&true;
&&&&}&while&(0);
&&&&return&bR
5.编译运行,可以看到玩家精灵在白色背景上,如下图所示:
6.接下来添加怪物,并且让怪物可以移动,我们在屏幕右边创建怪物,建立动作让它们向左移动,增加addMonster方法,代码如下:
void&HelloWorld::addMonster()
&&&&CCSprite&*monster&=&CCSprite::create(&monster.png&);
&&&&CCSize&winSize&=&CCDirector::sharedDirector()-&getWinSize();
&&&&int&minY&=&monster-&getContentSize().height&/&2;
&&&&int&maxY&=&winSize.height&-&monster-&getContentSize().height&/&2;
&&&&int&rangeY&=&maxY&-&minY;
&&&&int&actualY&=&(rand()&%&rangeY)&&#43;&minY;
&&&&monster-&setPosition(ccp(winSize.width&&#43;&monster-&getContentSize().width&/&2,&actualY));
&&&&this-&addChild(monster);
&&&&int&minDuration&=&2.0;
&&&&int&maxDuration&=&4.0;
&&&&int&rangeDuration&=&maxDuration&-&minD
&&&&int&actualDuration&=&(rand()&%&rangeDuration)&&#43;&minD
&&&&CCMoveTo&*actionMove&=&CCMoveTo::create(actualDuration,&ccp(-monster-&getContentSize().width&/&2,&actualY));
&&&&CCCallFuncN&*actionMoveDone&=&CCCallFuncN::create(this,&callfuncN_selector(HelloWorld::spriteMoveFinished));
&&&&monster-&runAction(CCSequence::create(actionMove,&actionMoveDone,&NULL));
在右边屏幕以随机的位置添加怪物精灵,注意计算精灵的位置坐标,默认描点在中心,不要让怪物截断了。然后再以2~4秒的随机总时间,让怪物从右边移动到左边,移动出边界后,即回调函数spriteMoveFinished,进行删除精灵对象,增加的spriteMoveFinished方法如下:
void&HelloWorld::spriteMoveFinished(CCNode&*sender)
&&&&CCSprite&*sprite&=&(CCSprite*)
&&&&this-&removeChild(sprite,&true);
接下去就是定时创建怪物,在init函数返回之前,安装定时器,每秒执行一次,代码如下:
this-&schedule(schedule_selector(HelloWorld::gameLogic),&1.0);
增加gameLogic方法,代码如下:
void&HelloWorld::gameLogic(&float&dt&)
&&&&this-&addMonster();
7.编译运行,可以看到右边怪物定时增加,并且以不同的速度向左边移动,如下图所示:
8.接着让玩家可以射击子弹,当用户在屏幕点击时,就让玩家往点击的方向进行发送子弹,用户的屏幕点击点并不是子弹移动的最终地,借用原文的一张图片来说明:
要让层可以支持触摸,需要在init方法,添加如下代码:
this-&setTouchEnabled(true);
然后重载ccTouchesEnded方法,代码如下:
void&HelloWorld::ccTouchesEnded(CCSet&*pTouches,&CCEvent&*pEvent)
&&&&CCTouch&*touch&=&(CCTouch*)pTouches-&anyObject();
&&&&CCPoint&location&=&this-&convertTouchToNodeSpace(touch);
&&&&CCSize&winSize&=&CCDirector::sharedDirector()-&getWinSize();
&&&&CCSprite&*projectile&=&CCSprite::create(&projectile.png&);
&&&&projectile-&setPosition(ccp(20,&winSize.height&/&2));
&&&&CCPoint&offset&=&ccpSub(location,&projectile-&getPosition());
&&&&if&(offset.x&&=&0)
&&&&&&&&return;
&&&&this-&addChild(projectile);
&&&&int&realX&=&winSize.width&&#43;&projectile-&getContentSize().width&/&2;
&&&&float&ratio&=&(float)offset.y&/&(float)offset.x;
&&&&int&realY&=&realX&*&ratio&&#43;&projectile-&getPosition().y;
&&&&CCPoint&realDest&=&ccp(realX,&realY);
&&&&int&offRealX&=&realX&-&projectile-&getPosition().x;
&&&&int&offRealY&=&realY&-&projectile-&getPosition().y;
&&&&float&length&=&sqrtf(offRealX&*&offRealX&&#43;&offRealY&*&offRealY);
&&&&float&velocity&=&<span style="color:#ff&/&1;
&&&&float&realMoveDuration&=&length&/&
&&&&projectile-&runAction(CCSequence::create(CCMoveTo::create(realMoveDuration,&realDest),&
&&&&&&&&CCCallFuncN::create(this,&callfuncN_selector(HelloWorld::spriteMoveFinished)),&NULL));
首先,得到触摸点,然后创建子弹精灵,算出触摸点与子弹初始位置之差,若触摸点在初始位置的前方(即玩家前方),则添加子弹到层上。以同比例方法,计算出子弹飞向屏幕右边的最终坐标。然后再用勾股定理计算飞行长度,假定速度为每秒480像素,则计算出飞行总时间。之后就是让子弹执行给定的飞行动作,以及之后的删除自身调用。
9.编译运行,往屏幕点击,可以看到子弹发射出去,如下图所示:
10.当子弹碰到怪物时,怪物被消灭,子弹消失,即碰撞检测。需要在场景中跟踪目标和子弹,在HelloWorldScene.h声明如下:
cocos2d::CCArray&*_
cocos2d::CCArray&*_
在构造函数和析构函数,添加如下:
HelloWorld::HelloWorld()
&&&&_monsters&=&NULL;
&&&&_projectiles&=&NULL;
HelloWorld::~HelloWorld()
&&&&if&(_monsters)
&&&&&&&&_monsters-&release();
&&&&&&&&_monsters&=&NULL;
&&&&if&(_projectiles)
&&&&&&&&_projectiles-&release();
&&&&&&&&_projectiles&=&NULL;
然后在init函数中初始化这两个数组:
this-&_monsters&=&CCArray::create();
this-&_monsters-&retain();
this-&_projectiles&=&CCArray::create();
this-&_projectiles-&retain();
修改addMonster函数,为怪物精灵添加标签,并加入到数组,代码如下:
monster-&setTag(1);
_monsters-&addObject(monster);
修改ccTouchesEnded函数,为子弹精灵添加标签,并加入到数组,代码如下:
projectile-&setTag(2);
_projectiles-&addObject(projectile);
然后修改spriteMoveFinished函数,增加如下代码:
if&(sprite-&getTag()&==&1)
&&&&_monsters-&removeObject(sprite);
else&if&(sprite-&getTag()&==&2)
&&&&_projectiles-&removeObject(sprite);
添加如下方法:
void&HelloWorld::update(float&dt)
&&&&CCArray&*projectilesToDelete&=&CCArray::create();
&&&&CCObject&*pObject&=&NULL;
&&&&CCObject&*pObject2&=&NULL;&
&&&&CCARRAY_FOREACH(_projectiles,&pObject)
&&&&&&&&CCSprite&*projectile&=&(CCSprite*)pO
&&&&&&&&CCArray&*monstersToDelete&=&CCArray::create();
&&&&&&&&CCARRAY_FOREACH(_monsters,&pObject2)
&&&&&&&&&&&&CCSprite&*monster&=&(CCSprite*)pObject2;
&&&&&&&&&&&&if&(CCRect::CCRectIntersectsRect(projectile-&boundingBox(),&monster-&boundingBox()))
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&monstersToDelete-&addObject(monster);
&&&&&&&&&&&&}&&&&&&&&&&&
&&&&&&&&CCARRAY_FOREACH(monstersToDelete,&pObject2)
&&&&&&&&&&&&CCSprite&*monster&=&(CCSprite*)pObject2;
&&&&&&&&&&&&_monsters-&removeObject(monster);
&&&&&&&&&&&&this-&removeChild(monster,&true);
&&&&&&&&if&(monstersToDelete-&count()&&&0)
&&&&&&&&&&&&projectilesToDelete-&addObject(projectile);
&&&&&&&&monstersToDelete-&release();
&&&&CCARRAY_FOREACH(projectilesToDelete,&pObject)
&&&&&&&&CCSprite&*projectile&=&(CCSprite*)pO
&&&&&&&&_projectiles-&removeObject(projectile);
&&&&&&&&this-&removeChild(projectile,&true);
&&&&projectilesToDelete-&release();
遍历子弹数组,计算每一个子弹所可能遇到的怪物,用它们各自的边界框进行交叉检测,检测到交叉,则将怪物对象放入ToDelete(待删除)数组,不能在遍历的时候删除一个对象。若是子弹遇到了怪物,也需要放入ToDelete(待删除)数组。然后从场景和数组中移动掉。同样,也在init函数,安装定时器,代码如下:
this-&schedule(schedule_selector(HelloWorld::update));
11.编译运行,这时当子弹和怪物碰撞时,它们就会消失;
12.添加音效,在init函数添加背景音乐,代码如下:
CocosDenshion::SimpleAudioEngine::sharedEngine()-&playBackgroundMusic(&background-music-aac.wav&);
在ccTouchesEnded函数,添加子弹音效,代码如下:
CocosDenshion::SimpleAudioEngine::sharedEngine()-&playEffect(&pew-pew-lei.wav&);
13.接下来,创建一个新的场景,来指示&You Win&或者&You Lose&。右键 工程,&Add&→&Class...&→&C&#43;&#43;&→&Add&,&Base class&为CCLayerColor,&Class name&为GameOverLayer,如下图所示:
GameOverLayer.h文件代码为:
#pragma&once
#include&&cocos2d.h&
class&GameOverLayer&:
&&&&public&cocos2d::CCLayerColor
&&&&GameOverLayer(void);
&&&&~GameOverLayer(void);
&&&&bool&initWithWon(bool&won);
&&&&static&cocos2d::CCScene*&sceneWithWon(bool&won);
&&&&static&GameOverLayer*&createWithWon(bool&won);
&&&&void&gameOverDone();
GameOverLayer.cpp文件代码为:
#include&&GameOverLayer.h&
#include&&HelloWorldScene.h&
using&namespace&cocos2d;
GameOverLayer::GameOverLayer(void)
GameOverLayer::~GameOverLayer(void)
GameOverLayer*&GameOverLayer::createWithWon(bool&won)
&&&&GameOverLayer&*pRet&=&new&GameOverLayer();
&&&&if&(pRet&&&&pRet-&initWithWon(won))
&&&&&&&&pRet-&autorelease();
&&&&&&&&return&pR
&&&&&&&&CC_SAFE_DELETE(pRet);
&&&&&&&&return&NULL;
bool&GameOverLayer::initWithWon(bool&won)
&&&&bool&bRet&=&false;
&&&&&&&&CC_BREAK_IF(!&CCLayerColor::initWithColor(ccc4(<span style="color:#ff,&<span style="color:#ff,&<span style="color:#ff,&<span style="color:#ff)));
&&&&&&&&char&*
&&&&&&&&if&(won)
&&&&&&&&&&&&message&=&&You&Won!&;
&&&&&&&&}&
&&&&&&&&else
&&&&&&&&&&&&message&=&&You&Lose&:[&;
&&&&&&&&CCSize&winSize&=&CCDirector::sharedDirector()-&getWinSize();
&&&&&&&&CCLabelTTF&*label&=&CCLabelTTF::create(message,&&Arial&,&32);
&&&&&&&&label-&setColor(ccc3(0,&0,&0));
&&&&&&&&label-&setPosition(ccp(winSize.width&/&2,&winSize.height&/&2));
&&&&&&&&this-&addChild(label);
&&&&&&&&this-&runAction(CCSequence::create(CCDelayTime::create(3),&
&&&&&&&&&&&&CCCallFunc::create(this,&callfunc_selector(GameOverLayer::gameOverDone)),
&&&&&&&&&&&&NULL));
&&&&&&&&bRet&=&true;
&&&&}&while&(0);
&&&&return&bR
cocos2d::CCScene*&GameOverLayer::sceneWithWon(bool&won)
&&&&CCScene&*&scene&=&NULL;
&&&&&&&&scene&=&CCScene::create();
&&&&&&&&CC_BREAK_IF(!&scene);
&&&&&&&&GameOverLayer&*layer&=&GameOverLayer::createWithWon(won);
&&&&&&&&CC_BREAK_IF(!&layer);
&&&&&&&&scene-&addChild(layer);
&&&&}&while&(0);
&&&&return&
void&GameOverLayer::gameOverDone()
&&&&CCDirector::sharedDirector()-&replaceScene(HelloWorld::scene());
游戏结束时,切换到以上所建的场景,场景上的层显示一个文本,在3秒之后返回到HelloWorld场景中。
14.最后,为游戏添加一些游戏逻辑。记录玩家消灭怪物的数量,进而决定该玩家输赢。在HelloWorldScene.h文件中,添加如下:
int&_monstersD
在HelloWorldScene.cpp文件,HelloWorld()构造函数,添加如下代码:
_monstersDestroyed&=&0;
添加头文件引用:
#include&&GameOverLayer.h&
在update定时函数中,monstersToDelete循环removeChild(monster, true)的后面添加被消灭怪物的计数,并判断胜利条件,代码如下:
_monstersDestroyed&#43;&#43;;
if&(_monstersDestroyed&&&30)
&&&&CCScene&*gameOverScene&=&GameOverLayer::sceneWithWon(true);
&&&&CCDirector::sharedDirector()-&replaceScene(gameOverScene);
最后为玩家添加失败条件,规定只要有一只怪物跑到左边屏幕里,则玩家失败,在spriteMoveFinished函数里,sprite-&getTag() == 1条件的后面,添加如下:
CCScene&*gameOverScene&=&GameOverLayer::sceneWithWon(false);
CCDirector::sharedDirector()-&replaceScene(gameOverScene);
14.编译并运行,到此已完成了一个简单的游戏,包含音效,并带有胜利和失败的结束。游戏效果如下:
参考资料:
1.How To Make A Simple iPhone Game with Cocos2D 2.X Tutorial
2.如何用Cocos2d来开发简单的IPhone游戏教程
3.Cocos2d Classic Tutorial Demo Revisit:(1)
非常感谢以上资料,本例子源代码附加资源下载地址:
如文章存在错误之处,欢迎指出,以便改正。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1650487次
积分:20496
积分:20496
排名:第145名
原创:362篇
转载:86篇
评论:2959条
联系方式:
(1)(1)(1)(1)(2)(1)(3)(3)(3)(1)(1)(3)(1)(1)(8)(1)(3)(2)(2)(3)(2)(3)(2)(1)(1)(2)(3)(6)(1)(4)(3)(1)(3)(5)(5)(5)(5)(1)(3)(5)(4)(4)(4)(5)(5)(1)(13)(11)(7)(5)(2)(5)(4)(5)(2)(7)(14)(18)(23)(19)(5)(35)(22)(21)(8)(10)(42)(49)3D版2012是怎么制作出来的? | 科学人 | 果壳网 科技有意思
3D版2012是怎么制作出来的?
当我们在电影院里看灾难片的时候,并不会担心影片中的景象有一天会变成现实。但是《2012》这部片子大概是个例外。就在那个传说中的日期(日)快要到来的时候,这部电影又出了3D视觉重建版,让观众可以提前一个月感受一下被世界末日的恐惧包围的感觉。
《2012》电影海报(图:豆瓣)
当然这是在开玩笑,2012并不会出现“世界末日”(对这一点有疑问的同学请点击:
)。但是电影的魅力就在于把人类的想象力具象化成看得见的实景,这种实景还是3D的,让你置身其中。
在3D版《2012》即将上线的时候,我们采访了整个3D视觉重建项目的技术总监Keith Collea和在项目中国团队的负责人、视觉工程师崔晓宇,了解一下工程师们究竟对这部影片做了什么,让它能激发剧场中更多的尖叫声。
3D视觉重建的工程量有多大
拍摄3D电影与把2D电影转换成3D,两者虽目标一致,工作状态却完全不同:前者好比生态生物学家,整天出野外;后者更像是分子生物学家,整天钻在实验室里。Keith说,对他来说整个项目里最困难的部分,就是要在一间黑暗的放映厅里,一小时又一小时地看片子,不出门也不上厕所。在影片制作的过程中,每个步骤都可能做出多个版本,需要拍板定夺。因此光是看样片,就是一项令人抓狂的工作。
这篇文章里介绍了一些2D电影转制3D电影的知识。文章提到,在3D影片制作中,相当一部分工作是计算机无法取代的,需要由人来进行。另一方面,要处理的数据是海量的。影片的每一帧都要制作出分别提供给左右眼看的画面。以每秒24帧计算,《2012》这部158分钟的影片包含22.75万帧。尽管在计算机的辅助下,不用一帧一帧地去修改画面,但要追求细节完美,整个工程还是耗时很久。《2012》的3D重建工作从月份进入具体操作阶段,终于赶在年底,玛雅人预言的日期到来之前完工。
《2012》如何从2D变成3D
具体来说,3D视觉重建是如何实现的呢?视觉工程师崔晓宇解释了大致的工作流程。
首先要对一段影片中每一幅画面做的是:“区分出不同的物体(如每一个人、每一辆车、每一幢建筑物等)”和“标识出每个物体的深度信息”。
《2012》电影画面(图:豆瓣)
物体的区分属于计算机视觉中的图像分割领域,目前尚未有普遍适应的自动算法。同时,3D电影的恢弘场景中往往包含很多物体,其运动方式繁杂不一,却又需要遵循视觉上的协调和美感。这项工作绝非计算机能自动处理的,必须有大量的人工操作。
这些标识出的物体会分别添加“Z轴”信息。2D画面是由横轴X和纵轴Y组成的。3D画面与之最本质的区别就在于具备“Z轴”,也就是“深度”上的信息。这项工作不仅需要准确把握场景中的立体信息、物理信息、碰撞关系,甚至还要恢复正确的力学信息。
为二十多万帧画面添加深度信息已属不易。更不幸的是,《2012》这部电影大部分场景里,几乎所有的东西都在动!到处是倒塌的房屋,碎石、车辆和人四处乱飞,这样的画面里标识出上千、几千个物体是常有的事。不仅工作量巨大,而且如果深度信息不够准确,呈现出的画面就会有违和感。人类的深度感知方式多种多样又非常敏感,对电影中深度信息的精确性要求很高,需要反复审查和调整。
《2012》电影画面(图:豆瓣)
上面的步骤完成之后,通过计算机合成,添加了深度信息的画面就构建出了一个具有深度层次的虚拟三维世界。(但它与真正的三维世界不同的是,无论你在电影院里怎么歪脑袋扭身子,都看不到侧面和背面是什么样。)这时就可以在这个三维世界中重新“拍摄”一遍电影,为左右眼制作不同的画面。
这里还需要解决的问题是:随着深度的恢复,原本的平面画面就有了凹凸信息。此时,“暴露出”的表面积(如物体的侧面)就增加了。如何填补这些信息,会对画面整体效果和视觉表现力产生非常明显的差异。这些“无中生有”的信息需要通过“视差恢复”等计算机视觉的相关算法来实现。
上面的几个步骤分别会由不同的技术团队来分工。各个影片片段经过一个部门处理之后,再传给下一个部门。由于部门繁多,甚至需要专门的人来负责追踪每一小段影片的去向和处理进度。《2012》的3D重建项目有多达460名技术工程师参与其中。终于知道电影片尾字幕为什么那么长了。
未来的电影会是什么样子
为什么要把以前的电影制作成3D版?本质上还是因为3D同2D相比,看起来更真实,更像我们用双眼看到的世界。
最初,人类在岩壁上用白垩画画。后来我们用照相机描绘更真实的图像。再后来图像可以动了,有了声音,从黑白变成彩色。总体趋势上,电影作为一种媒体,正在向着越来越“仿真”的方向发展。3D电影比起2D,能够呈现出更加接近真实世界的效果。这个过程中,每一点技术上的进步都会让我们在“讲故事”的能力方面提高一小步。3D电影技术方兴未艾,Keith这样的先驱者们正在尝试各种可能性,探索3D电影的发展之路。
至于未来的电影会是什么样子,Keith认为,放映技术会更加成熟,帧数会更高,同时屏幕与真实世界的界限可能会更加模糊,比如也许我们能感受到剧中人经过时带起的微风。当然这还需要很长的路要走。最重要的是,发展这些技术的目的,是为了走进影院的人们忘记它们的存在,而完全沉浸在故事本身。
听起来是非常美好的展望。不过对我个人来说,如果未来电影变得如此真实,那我不知道还敢不敢去看《2012》这样的灾难片……
对本文的帮助。
你可能感兴趣
史上第一次杀到,好鸡冻好兴混不过还是理解不了为什么还要去炒冷饭,真的很好吃么==!
智能科学专业
计算机视觉自动处理2D到3D确实很难。。。=。=不过现有的一些办法是已知一个模型,比如人的头骨大致的形状,然后按照照片贴上去再微调就好。。。
手机啥时候才能普及啊!这样就可以随时体验鸟。
这次转换的质量一般……准确地说还能接受……
居然是中国首播,难以置信。
中国首发是为了奖励中国便宜的劳动力帮忙进行了Z轴的评估么……
的话:中国首发是为了奖励中国便宜的劳动力帮忙进行了Z轴的评估么……不是,基本就是国人转的,从roto到建模到动画到projection都是廉价的国人负责,工资是你想象不到的低……
这种伪3D有意思么?
厌倦3D了。难道还能转过去看屁股?
的话:史上第一次杀到,好鸡冻好兴混不过还是理解不了为什么还要去炒冷饭,真的很好吃么==!天下熙熙皆为利来,天下攘攘皆为利往。——《史记·货殖列传》
对当下的3d电影的印象就是——骗钱的。影片一开始,哇~字幕都是出来的,太炫了,看着看着,感觉也就只有字幕的效果最好。
的话:不是,基本就是国人转的,从roto到建模到动画到projection都是廉价的国人负责,工资是你想象不到的低……果然。。。我就觉得以老美的劳动力价格。。。转完一部片子和拍一部也不会查太多了。。。。
不是说那种转制的都是伪3D么?
跪求转制3D版指环王!!!
做完3D版,这帮人这辈子也再也不看2012了
的话:不是,基本就是国人转的,从roto到建模到动画到projection都是廉价的国人负责,工资是你想象不到的低……果然是这样的……
前段时间看了个山寨版2012最后的台词是:不信教的终于被清洗出地球了,让我们一起赞美上帝的仁慈吧
电影视觉导演,艺术电影制作者
赶时髦呗·
4.5d是什么?
为什么3D的看一会儿就头晕...
伪3D电影很伤眼睛
神经生物学硕士
的话:为什么3D的看一会儿就头晕...这种一般属于“3D眩晕症”,是一种生理上的不适。详细阅读:
的话:居然是中国首播,难以置信。2d那次不也是中国首播么?时差问题
现在看电影专看2d的,国内影院为了省器材损耗,3d亮度开的很低,导致3d观影体验急剧下降,再说那玩意看多了也就那么回事。还是48帧电影更靠谱点。
V b 厶很好来自
的话:现在看电影专看2d的,国内影院为了省器材损耗,3d亮度开的很低,导致3d观影体验急剧下降,再说那玩意看多了也就那么回事。还是48帧电影更靠谱点。引用
的话:2d那次不也是中国首播么?时差问题
的话:现在看电影专看2d的,国内影院为了省器材损耗,3d亮度开的很低,导致3d观影体验急剧下降,再说那玩意看多了也就那么回事。还是48帧电影更靠谱点。IMAX亮度毫无压力啊.普罗米修斯因为有山寨DMAX,害的中国没引进IMAX,去看了个普通3D,黑死我了.
其实3D 2012是为最后的保留船票做广告呢..........
显示所有评论
(C)2013果壳网&京ICP备号-2&京公网安备

我要回帖

更多关于 怎么制作表格 的文章

 

随机推荐