首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建阴影pixi.js?

如何创建阴影pixi.js?
EN

Stack Overflow用户
提问于 2015-09-16 10:44:37
回答 1查看 6.4K关注 0票数 1

为什么没有影子?你需要做些什么才能让过滤器正常工作?如果可能的话,然后告诉我如何在代码中创建阴影。

代码语言:javascript
复制
var renderer = PIXI.autoDetectRenderer(500, 200, {
  transparent: true
});

document.getElementsByTagName('body')[0].appendChild(renderer.view);

var stage = new PIXI.Container();

function update(){
  renderer.render(stage);
  window.requestAnimationFrame(update);
}

update();

var graphics = new PIXI.Graphics();
graphics.beginFill(0x848484);
graphics.drawPolygon([0,0,100,0,100,100,0,100,0,0]);
graphics.endFill();

var dropShadowFilter = new PIXI.filters.DropShadowFilter();
dropShadowFilter.alpha = 1;
dropShadowFilter.blur = 2;
dropShadowFilter.distance = 20;

graphics.filters = [dropShadowFilter];

stage.addChild(graphics);
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/pixi.js/3.0.7/pixi.js"></script>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-19 16:33:09

不要让渲染器变得透明。我猜,如果渲染器是透明的,那么它的纹理有alpha =0,阴影就画在上面。而且,只适用于webGL。

代码语言:javascript
复制
var renderer = new PIXI.WebGLRenderer(500, 200);
renderer.backgroundColor = 0xffffff;

document.getElementsByTagName('body')[0].appendChild(renderer.view);

var stage = new PIXI.Container();

function update(){
  renderer.render(stage);
  window.requestAnimationFrame(update);
}

update();

var graphics = new PIXI.Graphics();
graphics.beginFill(0x8484cc);
graphics.drawPolygon([20,20,120,20,120,120,20,120,20,20]);
graphics.endFill();

var dropShadowFilter = new PIXI.filters.DropShadowFilter();
dropShadowFilter.color = 0x000020;
dropShadowFilter.alpha = 0.2;
dropShadowFilter.blur = 6;
dropShadowFilter.distance = 20;

graphics.filters = [dropShadowFilter];

stage.addChild(graphics);
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/pixi.js/3.0.7/pixi.js"></script>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32606403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档