导航:首页 > 创造发明 > 能创造纹理的小工具是

能创造纹理的小工具是

发布时间:2022-07-08 08:33:19

Ⅰ 如何在adobe photoshop中给扁平化的插图添加纹理

Photoshop 简称“PS”,是由Adobe Systems开发和发行的图像处理软件,其近百个编修与绘图工具,可以有效地进行图片编辑处理工作。以Photoshop cc2014软件为例,给扁平化插图添加纹理的方法是:

1、打开ps软件,“文件--新建”100*100像素白色背景文件;

Ⅱ painter软件中,为图片增加纹理!

纹理选项是为选中的图层非透明部分增加立体的纹理效果,基本使用方法:
1,选中图像所在图层(该图层必须是有不透明的部分,否则无效果)
2,打开表面纹理工具,调整选项并确认(调节的部分可以根据个人需求)

如果既想增加一层类似纸纹的效果,又不想破坏原图,请按以下操作:
1,新建一个图层,用白色填充
2,打开表面纹理工具并确认(调节的部分可以根据个人需求)
3,将纹理图层调整为“明度”,并适当降低该图层的透明度至满意为止。

如果你想增加其他的纹理效果就稍微复杂一些:
1,打开原图与你所选的纹理图,
2,选中纹理图,全选(ctrl+A)并复制(Ctrl+C)
3,选中在你的图片,选择粘贴(Ctrl+V),
4,将纹理所在图层类型由“默认”转变为“明度”,调整图层透明度到满意为止
5,若纹理图过小,选中纹理所在图层,全选(Ctrl+A),选择编辑选项卡下的“自由变形”(Ctrl+Alt+T),调整大小及位置覆盖所需画面即可。
6,如果只是对部分区域上纹理,可以用用橡皮工具擦掉该图层不需要的部分。

Ⅲ Illustrator怎么做纹理

1、打开Illustrator软件,进入操作界面,如图所示。

Ⅳ 什么软件能弄纹理

那要看你想要什么纹理了,我觉得keyshot这种渲染可以弄。

Ⅳ 这种纹理用什么工具可以做出来

防伪纹理不一定用软件来实现。刻出来的章人工划弄几个线条或者小缺口,那样比软件来得更具唯一性

Ⅵ 烫纹理的工具叫什么

没什么很多工具啊。

1.卷杠(有粗有细,越粗卷越大,越小卷越小)

2.垫在头发和卷杠之间的布条。

3.药水,一般是两种,冷烫精和中和剂,有的牌子还多个催化剂。

Ⅶ 如何在photoshop里制作纹理

工具材料

电脑 ps软件

1、首先下载安装好ps软件,如下图所示,在主页点击左上角的“新建”选项。

Ⅷ 以下哪个工具在修复的时候可以创健纹理 A污点修复画笔工月 B修复画笔工具 C修

污点修复画笔工具在修复的时候可以创健纹理.

Ⅸ 这种纹理效果怎么用PS做出来

这个纹理是ps自带的图案,具体下:

(方便对比是不是一样,我直接在你这图上做的)

  1. 新建图层,做了一小块纯色区域

    完成效果(觉得纹理太大可以对图层缩放),望采纳

Ⅹ 如何使用CCRenderTexture来创建动态纹理

本文实践自 Ray Wenderlich、Ali Hafizji 的文章《How To Create Dynamic Textures with CCRenderTexture in Cocos2D 2.X》,文中使用Cocos2D,我在这里使用Cocos2D-x 2.1.4进行学习和移植。在这篇文章,将会学习到如何创建实时纹理、如何用Gimp创建无缝拼接纹理、如何混合阴影和光照到纹理上以显现逼真效果、如何创建条纹纹理、如何设置纹理重复等等。

步骤如下:
1.新建Cocos2d-win32工程,工程名为"TinySeal",勾选"Box2D"选项(后续文章会使用到),勾选"Simple Audio Engine in Cocos Denshion"选项;
2.打开HelloWorldScene.cpp文件,在添加如下方法:


CCSprite *HelloWorld::spriteWithColor(ccColor4F bgColor, float textureWidth, float textureHeight)
{
// 1: Create new CCRenderTexture
CCRenderTexture *rt = CCRenderTexture::create(textureWidth, textureHeight);

// 2: Call CCRenderTexture:begin
rt->beginWithClear(bgColor.r, bgColor.g, bgColor.b, bgColor.a);

// 3: Draw into the texture
// You'll add this later

// 4: Call CCRenderTexture:end
rt->end();

// 5: Create a new Sprite from the texture
return CCSprite::createWithTexture(rt->getSprite()->getTexture());
}

正如你所见,这5个步骤是用来创建动态纹理的,具体描述如下:
①.创建一个新的CCRenderTexture:指定所要创建纹理的宽度和高度。
②.调用CCRenderTexture的begin方法:设置OpenGL以便之后的任何图形绘制都在CCRenderTexture上,而不是屏幕上。
③.绘制纹理:使用原始的OpenGL命令来绘制,或通过调用现有的Cocos2D对象的visit方法。
④.调用CCRenderTexture的end方法:渲染纹理,关闭绘制到纹理上。
⑤.以纹理创建一个新的精灵:以CCRenderTexture的getSprite()->getTexture()来创建一个新的精灵。
注意这里不是调用CCRenderTexture:begin方法,而是调用一个更方便的方法beginWithClear,可以在绘制之前,用特定的颜色来清除纹理。
3.接着打开HelloWorldScene.h文件,添加如下代码:

private:
cocos2d::CCSprite *_background;

打开HelloWorldScene.cpp文件,在构造函数里添加如下代码:

_background = NULL;

修改init函数为如下:

bool HelloWorld::init()
{
bool bRet = false;
do
{
CC_BREAK_IF(! CCLayer::init());

bRet = true;
} while (0);

return bRet;
}

添加以下方法:

ccColor4F HelloWorld::randomBrightColor()
{
while (true)
{
float requiredBrightness = 192;
ccColor4B randomColor = ccc4(rand() % 255,
rand() % 255,
rand() % 255,
255);
if (randomColor.r > requiredBrightness ||
randomColor.g > requiredBrightness ||
randomColor.b > requiredBrightness)
{
return ccc4FFromccc4B(randomColor);
}
}
}

void HelloWorld::genBackground()
{
if (_background)
{
_background->removeFromParentAndCleanup(true);
}

ccColor4F bgColor = this->randomBrightColor();
_background = this->spriteWithColor(bgColor, 512, 512);

CCSize winSize = CCDirector::sharedDirector()->getWinSize();
_background->setPosition(ccp(winSize.width / 2, winSize.height / 2));
this->addChild(_background, -1);
}

void HelloWorld::onEnter()
{
CCLayer::onEnter();
this->genBackground();
this->setTouchEnabled(true);
}

void HelloWorld::ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent)
{
this->genBackground();
}

randomBrightColor是一个辅助方法,用来创建随机颜色。注意到这里是使用ccc4B,所以可以指定R/G/B/A值在0-255范围内,并且确保至少其中之一大于192,这样就不会得到较深的颜色。然后再将颜色转换成ccc4F。genBackground方法调用spriteWithColor方法,然后把创建的精灵加到屏幕中央。onEnter方法调用genBackground,并且开启触摸,这样触摸屏幕就可以重新生成另一个随机背景。编译运行,每次运行程序或触摸屏幕都会有不同颜色的背景
4.创建噪音纹理。用一些噪音来进行修饰,这样会使得它们看起来像是有阴影和光照。可以编写一些代码生成动态噪音,但是使用一些预先做好的噪音,这将更容易,性能也更高,这也是这里所将要介绍的。一种简单的方法来创建随机噪音,是通过一个免费的图像编辑程序,名为Gimp。在这里,可以下载已经制作好的图片(下载),跳过这部分。也可以下载Gimp(下载,当前2.8.4版本),动手制作。启动Gimp程序,菜单栏→“文件”→“新建”,创建一张512x512大小的图像。菜单栏→“滤镜”→“绘制”→“云彩”→“纯色噪音”,如果需要的话,可以在这里调整参数,然后点击“确定”。将会使用这张图片乘以纹理的颜色。因此,图片中的白色部分,将使原来的颜色显现出来,而黑色的部分,将使原来的颜色变得更暗。目前,图片中有太多的黑色部分,这会影响到我们所需要的效果。所以要减少黑色部分的数量,菜单栏→“颜色”→“色阶”,拖动“输出色阶”最左边的滑块到右边一些,这里调整为160
噪音纹理需要制作成无缝拼接,这样才能创建拼接完整的重复纹理。菜单栏→“滤镜”→“映射”→“无缝处理”即可。最后保存文件,菜单栏→“文件”→“导出到”,名称为Noise.png,保存到工程Resources文件夹下。
5.应用噪音纹理。把这张噪音图片应用到用CCRenderTexture所创建的纹理上。在spriteWithColor函数里面,第3步注释后面添加如下代码:

CCSprite *noise = CCSprite::create("Noise.png");
ccBlendFunc blendFunc = {GL_DST_COLOR, GL_ZERO};
noise->setBlendFunc(blendFunc);
noise->setPosition(ccp(textureWidth / 2, textureHeight / 2));
noise->visit();

这里用噪音纹理来创建精灵,将它放置在渲染纹理的中心,然后调用visit方法。这个visit方法就是一系列的OpenGL ES命令调用,来绘制纹理。ccBlendFunc的第一个常量(GL_DST_COLOR)指定如何乘以输入/源(也就是噪音纹理)的颜色,第二个常量(GL_ZERO)指定如何乘以现有的/目标(也就是上面的纯色纹理)的颜色。具体如下:

现有的颜色乘以GL_ZERO,意味着现有的颜色被清除掉。

噪音纹理的颜色乘以GL_DST_COLOR,而GL_DST_COLOR意味着现有的颜色,因此噪音纹理的颜色乘以现有的颜色。所以噪音中白色部分越多,那么对应现有的颜色将会越明显,而噪音中黑色部分越多,则对应现有的颜色越暗。

上述两种颜色进行相加,由于第一种颜色为零,所以真正重要的是第二种颜色结果。
这些混合常量令人迷惑,幸运的是有一个免费的在线工具,可以可视化的看到这些混合常量搭配的效果。编译运行,将可以看到纹理上的一些阴影效果
6.添加渐变到纹理上。为了使纹理看起来更好些,添加一个从上到下的渐变,纹理越往下越暗。虽然可以通过Gimp修改噪音文件达到效果,但也可以用代码做到,这样使得事情更加动态,而且容易修改。基本的想法是,在纹理之上绘制一个黑色矩形,它的顶部完全透明,而底部不透明,这将使得纹理顶部不变,而底部逐渐变暗下去。要做到这一点,需要用到一些OpenGL命令。在spriteWithColor函数里面,创建噪音精灵之前,添加如下代码:


this->setShaderProgram(CCShaderCache::sharedShaderCache()->programForKey(kCCShader_PositionColor));

CC_NODE_DRAW_SETUP();

// 3: Draw into the texture
float gradientAlpha = 0.7f;
CCPoint vertices[4];
ccColor4F colors[4];
int nVertices = 0;

vertices[nVertices] = CCPointMake(0, 0);
colors[nVertices++] = ccc4f(0, 0, 0, 0);
vertices[nVertices] = CCPointMake(textureWidth, 0);
colors[nVertices++] = ccc4f(0, 0, 0, 0);
vertices[nVertices] = CCPointMake(0, textureHeight);
colors[nVertices++] = ccc4f(0, 0, 0, gradientAlpha);
vertices[nVertices] = CCPointMake(textureWidth, textureHeight);
colors[nVertices++] = ccc4f(0, 0, 0, gradientAlpha);

ccGLEnableVertexAttribs(kCCVertexAttribFlag_Position | kCCVertexAttribFlag_Color);

glVertexAttribPointer(kCCVertexAttrib_Position, 2, GL_FLOAT, GL_FALSE, 0, vertices);
glVertexAttribPointer(kCCVertexAttrib_Color, 4, GL_FLOAT, GL_FALSE, 0, colors);
glBlendFunc(CC_BLEND_SRC, CC_BLEND_DST);
glDrawArrays(GL_TRIANGLE_STRIP, 0, (GLsizei)nVertices);

绘制纹理时,左上角是(0,0)点,而不是Cocos2D中的左下角。因此,以上代码首先定义了纹理的四个顶点,顺序为左上、右上、左下、右下,还定义了每个点的颜色。以这样的顺序来绘制顶点,是因为将绘制两个三角形来形成一个矩形,如下图所示:

使用GL_TRIANGLE_STRIP来绘制这些三角形,这意味着,第一个三角形由顶点数组中的前三个顶点组成,其余的三角形由前一个三角形的后两个顶点和下一个顶点组成。因此,这里第一个三角形由V0、V1、V2组成,第二个三角形由V1、V2、V3组成。定义完顶点数组和颜色数组之后,传递顶点数组和kCCVertexAttrib_Position常量给glVertexAttribPointer,同样传递颜色数组和kCCVertexAttrib_Color常量给glVertexAttribPointer。编译运行,可以看到一个整齐的渐变纹理,如下图所示:

7.创建条纹纹理。将以一种颜色(如蓝色)着色纹理开始,然后绘制一些条纹(如绿色)斜穿过它,如下图所示:

注意,因为条纹是斜向的,实际上要在纹理的边界之外就开始绘制,并且在纹理的边界之外继续绘制一些条纹。另外还要注意,为了得到一个不错的45度角,把V0偏移纹理的高度,这样两边都是纹理高度,因此,可以得到一个45度角。添加一个新的方法,代码如下:

CCSprite * HelloWorld::spriteWithColor1(ccColor4F c1, ccColor4F c2, float textureWidth, float textureHeight, int nStripes)
{
// 1: Create new CCRenderTexture
CCRenderTexture *rt = CCRenderTexture::create(textureWidth, textureHeight);

// 2: Call CCRenderTexture:begin
rt->beginWithClear(c1.r, c1.g, c1.b, c1.a);

// 3: Draw into the texture
this->setShaderProgram(CCShaderCache::sharedShaderCache()->programForKey(kCCShader_PositionColor));
CC_NODE_DRAW_SETUP();

// Layer 1: Stripes
CCPoint *vertices = new CCPoint[nStripes * 6];
ccColor4F *colors = new ccColor4F[nStripes * 6];

int nVertices = 0;
float x1 = -textureHeight;
float x2;
float y1 = textureHeight;
float y2 = 0;
float dx = textureWidth / nStripes * 2;
float stripeWidth = dx / 2;
for (int i = 0; i < nStripes; ++i)
{
x2 = x1 + textureHeight;

vertices[nVertices] = ccp(x1, y1);
colors[nVertices++] = ccc4f(c2.r, c2.g, c2.b, c2.a);

vertices[nVertices] = ccp(x1 + stripeWidth, y1);
colors[nVertices++] = ccc4f(c2.r, c2.g, c2.b, c2.a);

vertices[nVertices] = ccp(x2, y2);
colors[nVertices++] = ccc4f(c2.r, c2.g, c2.b, c2.a);

vertices[nVertices] = vertices[nVertices - 2];
colors[nVertices++] = ccc4f(c2.r, c2.g, c2.b, c2.a);

vertices[nVertices] = vertices[nVertices - 2];
colors[nVertices++] = ccc4f(c2.r, c2.g, c2.b, c2.a);

vertices[nVertices] = ccp(x2 + stripeWidth, y2);
colors[nVertices++] = ccc4f(c2.r, c2.g, c2.b, c2.a);
x1 += dx;
}

ccGLEnableVertexAttribs(kCCVertexAttribFlag_Position | kCCVertexAttribFlag_Color);
glVertexAttribPointer(kCCVertexAttrib_Position, 2, GL_FLOAT, GL_FALSE, 0, vertices);
glVertexAttribPointer(kCCVertexAttrib_Color, 4, GL_FLOAT, GL_TRUE, 0, colors);
glDrawArrays(GL_TRIANGLES, 0, (GLsizei)nVertices);

CC_SAFE_DELETE_ARRAY(vertices);
CC_SAFE_DELETE_ARRAY(colors);

// Layer 4: Noise
CCSprite *noise = CCSprite::create("Noise.png");
ccBlendFunc blendFunc = {GL_DST_COLOR, GL_ZERO};
noise->setBlendFunc(blendFunc);
noise->setPosition(ccp(textureWidth / 2, textureHeight / 2));
noise->visit();

// 4: Call CCRenderTexture:end
rt->end();

// 5: Create a new Sprite from the texture
return CCSprite::createWithTexture(rt->getSprite()->getTexture());
}

这个方法的大部分内容是回顾如何创建一个CCRenderTexture,但是创建条纹层的代码是新的,这部分代码,它首先创建了顶点数组和颜色数组,对于每个条纹,需要6个顶点,即3个顶点乘以2个三角形。不能使用GL_TRIANGLE_STRIP,因为条纹不相邻。颜色数组存储三角形的每个顶点颜色值。第一个顶点位于(-textureHeight, textureHeight),正如上图所看到的。下一个顶点位于(-textureHeight+stripWidth, textureHeight),第三个顶点位于(0, 0),而第四个顶点位于(stripeWidth,0)。这些是一个条纹所需要的顶点,每次往前递增条纹的两倍宽度,并且持续这样直到所有条纹完成。修改genBackground函数为如下:


void HelloWorld::genBackground()
{
if (_background)
{
_background->removeFromParentAndCleanup(true);
}

ccColor4F bgColor = this->randomBrightColor();
ccColor4F color2 = this->randomBrightColor();
//_background = this->spriteWithColor(bgColor, 512, 512);
int nStripes = ((rand() % 4) + 1) * 2;
_background = this->spriteWithColor1(bgColor, color2, 512, 512, nStripes);

this->setScale(0.5f);

CCSize winSize = CCDirector::sharedDirector()->getWinSize();
_background->setPosition(ccp(winSize.width / 2, winSize.height / 2));
this->addChild(_background);
}

这里调用新的方法,并且还设置了层的缩放为0.5,使其更容易地看到整个纹理。编译运行,每当触摸屏幕都可以看到随机生成的条纹纹理

阅读全文

与能创造纹理的小工具是相关的资料

热点内容
安徽职称计算机证书查询 浏览:680
卫生院公共卫生服务会议记录 浏览:104
泉州文博知识产权 浏览:348
公共卫生服务培训会议小结 浏览:159
马鞍山揽山别院价格 浏览:56
施工索赔有效期 浏览:153
矛盾纠纷交办单 浏览:447
2010年公需课知识产权法基础与实务答案 浏览:391
侵权责任法第5556条 浏览:369
创造者对吉阿赫利直播 浏览:786
中小企业公共服务平台网络 浏览:846
深圳市润之行商标制作有限公司 浏览:62
江莉马鞍山 浏览:417
马鞍山大事件 浏览:759
机动车销售统一发票抵扣期限 浏览:451
马鞍山防汛抗旱指挥部通告 浏览:811
公司间商标授权书模板 浏览:115
上海市医患纠纷预防与调解办法 浏览:970
转让翻转犁 浏览:705
门头广告牌使用费合同 浏览:835