{"id":849,"date":"2018-02-10T11:31:21","date_gmt":"2018-02-10T10:31:21","guid":{"rendered":"http:\/\/www.pixnbgames.com\/blog\/?p=849"},"modified":"2018-02-10T12:10:27","modified_gmt":"2018-02-10T11:10:27","slug":"cocos2d-x-desactivar-antialising-en-texturas-atlas-y-fuentes","status":"publish","type":"post","link":"https:\/\/www.pixnbgames.com\/blog\/cocos2d-x\/cocos2d-x-desactivar-antialising-en-texturas-atlas-y-fuentes\/","title":{"rendered":"cocos2d-x: Desactivar antialising en texturas, atlas y fuentes"},"content":{"rendered":"<p>El <a href=\"https:\/\/es.wikipedia.org\/wiki\/Antialiasing\" target=\"_blank\" rel=\"noopener\">antialising<\/a> de texturas es una t\u00e9cnica que permite suavizar las im\u00e1genes cuando estas se muestran con alguna transformaci\u00f3n (escalado, rotaci\u00f3n, etc.) respecto a la original.<\/p>\n<p>Por defecto, <a href=\"http:\/\/www.cocos2d-x.org\/\" target=\"_blank\" rel=\"noopener\">cocos2d-x<\/a> aplica esta t\u00e9cnica a las texturas que carguemos en nuestro juego, pero hay ocasiones en las que nos interesa deshabilitar esta t\u00e9cnica. Por ejemplo, en videojuegos con est\u00e9tica pixelada.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-853\" src=\"http:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2018\/02\/texture_aliasing.png\" alt=\"\" width=\"645\" height=\"400\" srcset=\"https:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2018\/02\/texture_aliasing.png 645w, https:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2018\/02\/texture_aliasing-300x186.png 300w\" sizes=\"(max-width: 645px) 100vw, 645px\" \/><\/p>\n<p>La forma de desactivar el anti alias es llamar al m\u00e9todo\u00a0<code>setAliasTexParameters()<\/code> en las texturas utilizadas. Desconozco si existe alg\u00fan m\u00e9todo sencillo para desactivar el suavizado de forma global, por lo que yo llamo al m\u00e9todo <code>setAliasTexParameters()<\/code> en cada una de las texturas usadas para construir los sprites del juego. A continuaci\u00f3n se muestran ejemplos de c\u00f3mo hacerlo para diferentes elementos.<\/p>\n<p>&nbsp;<\/p>\n<h3>Sprite<\/h3>\n<pre lang=\"cpp\">auto sprite = Sprite::create(\"image.png\");\r\nsprite->getTexture()->setAliasTexParameters();\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h3>Sprite Atlas<\/h3>\n<p>Para los atlas de texturas (creado con archivos .plist) tenemos varias opciones para acceder a las texturas. Por ejemplo:<\/p>\n<h4>Acceder a la textura a trav\u00e9s de un sprite<\/h4>\n<p>Al establecer los par\u00e1metros en una textura de un sprite atlas, esto afecta autom\u00e1ticamente a todos los sprites que utilicen la misma textura, por lo que s\u00f3lo seria necesario hacerlo una vez para todo el atlas:<\/p>\n<pre lang=\"cpp\">auto sprite = Sprite::createWithSpriteFrameName(\"sprite_name\");\r\nsprite->getTexture()->setAliasTexParameters();\r\n<\/pre>\n<h4>Crear el atlas con una textura configurada<\/h4>\n<p>Con el siguiente m\u00e9todo se carga una textura sin suavizado.<\/p>\n<pre lang=\"cpp\">Texture2D* loadAliasTexture(const std::string &textureFile) {\r\n    auto img = new Image();\r\n    img->initWithImageFile(textureFile);\r\n\r\n    auto tex = new Texture2D();\r\n    tex->initWithImage(img);\r\n    tex->setAliasTexParameters();\r\n    return tex;\r\n}\r\n<\/pre>\n<p>A continuaci\u00f3n se puede cargar el atlas usando la textura sin suavizar.<\/p>\n<pre lang=\"cpp\">Texture2D* tex = loadAliasTexture(\"images.png\");\r\nSpriteFrameCache::getInstance()->addSpriteFramesWithFile(\"imgages.plist\", tex);\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h3>Fuentes Bitmap<\/h3>\n<pre lang=\"cpp\">auto label = Label::createWithBMFont(\"font.fnt\", \"Label text\");\r\nlabel->getFontAtlas()->getTexture(0)->setAliasTexParameters();\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>El antialising de texturas es una t\u00e9cnica que permite suavizar las im\u00e1genes cuando estas se muestran con alguna transformaci\u00f3n (escalado, rotaci\u00f3n, etc.) respecto a la original. Por defecto, cocos2d-x aplica esta t\u00e9cnica a las texturas que carguemos en nuestro juego, <a class=\"more-link\" href=\"https:\/\/www.pixnbgames.com\/blog\/cocos2d-x\/cocos2d-x-desactivar-antialising-en-texturas-atlas-y-fuentes\/\">Seguir leyendo <span class=\"screen-reader-text\">  cocos2d-x: Desactivar antialising en texturas, atlas y fuentes<\/span><span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":853,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[29],"tags":[32],"language":[5],"_links":{"self":[{"href":"https:\/\/www.pixnbgames.com\/blog\/wp-json\/wp\/v2\/posts\/849"}],"collection":[{"href":"https:\/\/www.pixnbgames.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pixnbgames.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pixnbgames.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pixnbgames.com\/blog\/wp-json\/wp\/v2\/comments?post=849"}],"version-history":[{"count":9,"href":"https:\/\/www.pixnbgames.com\/blog\/wp-json\/wp\/v2\/posts\/849\/revisions"}],"predecessor-version":[{"id":867,"href":"https:\/\/www.pixnbgames.com\/blog\/wp-json\/wp\/v2\/posts\/849\/revisions\/867"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pixnbgames.com\/blog\/wp-json\/wp\/v2\/media\/853"}],"wp:attachment":[{"href":"https:\/\/www.pixnbgames.com\/blog\/wp-json\/wp\/v2\/media?parent=849"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pixnbgames.com\/blog\/wp-json\/wp\/v2\/categories?post=849"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pixnbgames.com\/blog\/wp-json\/wp\/v2\/tags?post=849"},{"taxonomy":"language","embeddable":true,"href":"https:\/\/www.pixnbgames.com\/blog\/wp-json\/wp\/v2\/language?post=849"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}