<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.ecured.cu/index.php?action=history&amp;feed=atom&amp;title=Shaders</id>
	<title>Shaders - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://www.ecured.cu/index.php?action=history&amp;feed=atom&amp;title=Shaders"/>
	<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Shaders&amp;action=history"/>
	<updated>2026-04-17T20:25:11Z</updated>
	<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Shaders&amp;diff=3455148&amp;oldid=prev</id>
		<title>Javiermartin jc: Texto reemplazado: «&lt;div align=&quot;justify&quot;&gt;» por «»</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Shaders&amp;diff=3455148&amp;oldid=prev"/>
		<updated>2019-07-13T10:54:46Z</updated>

		<summary type="html">&lt;p&gt;Texto reemplazado: «&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;» por «»&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 10:54 13 jul 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot; &gt;Línea 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|tamaño=&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|tamaño=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|concepto=Los shaders son programas, que se escriben en un lenguaje estándar, para&amp;#160;  procesar tanto píxeles (Píxel Shader) como vértices (Vertex Shader).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|concepto=Los shaders son programas, que se escriben en un lenguaje estándar, para&amp;#160;  procesar tanto píxeles (Píxel Shader) como vértices (Vertex Shader).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Shaders.''' Sin entrar en terrenos de difícil comprensión, los shaders son&amp;#160; pequeños programas que se encargan del procesamiento de vértices (Vertex shaders) y de pixeles (Píxel shaders).&amp;#160; La principal ventaja es que, como su naturaleza lo indica, pueden ser&amp;#160; programados por el desarrollador, otorgando una flexibilidad que hasta&amp;#160; antes de la aparición de los shaders era poco más que impensada. Son utilizados para realizar transformaciones y crear&amp;#160; efectos especiales, como por ejemplo iluminación, fuego o niebla. Los shaders pueden programarse tanto en el lenguaje ensamblador nativo&amp;#160;  de la tarjeta gráfica (opción obsoleta) o en un lenguaje de alto nivel,&amp;#160;  como son el HLSL, GLSL o el Cg.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Shaders.''' Sin entrar en terrenos de difícil comprensión, los shaders son&amp;#160; pequeños programas que se encargan del procesamiento de vértices (Vertex shaders) y de pixeles (Píxel shaders).&amp;#160; La principal ventaja es que, como su naturaleza lo indica, pueden ser&amp;#160; programados por el desarrollador, otorgando una flexibilidad que hasta&amp;#160; antes de la aparición de los shaders era poco más que impensada. Son utilizados para realizar transformaciones y crear&amp;#160; efectos especiales, como por ejemplo iluminación, fuego o niebla. Los shaders pueden programarse tanto en el lenguaje ensamblador nativo&amp;#160;  de la tarjeta gráfica (opción obsoleta) o en un lenguaje de alto nivel,&amp;#160;  como son el HLSL, GLSL o el Cg.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki1:diff::1.12:old-1984955:rev-3455148 --&gt;
&lt;/table&gt;</summary>
		<author><name>Javiermartin jc</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Shaders&amp;diff=1984955&amp;oldid=prev</id>
		<title>Wendy idict en 19:55 8 jul 2013</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Shaders&amp;diff=1984955&amp;oldid=prev"/>
		<updated>2013-07-08T19:55:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 19:55 8 jul 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Línea 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Definición&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Definición&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|nombre=Shaders&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|nombre=Shaders&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|concepto= Los shaders son programas, que se escriben en un lenguaje estándar, para &lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;procesar tanto píxeles (Píxel Shader) como vértices (Vertex Shader).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|imagen=&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|tamaño=&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|concepto=Los shaders son programas, que se escriben en un lenguaje estándar, para &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &lt;/ins&gt;procesar tanto píxeles (Píxel Shader) como vértices (Vertex Shader).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Shaders.''' Sin entrar en terrenos de difícil comprensión, los shaders son&amp;#160; pequeños programas que se encargan del procesamiento de vértices (Vertex shaders) y de pixeles (Píxel shaders).&amp;#160; La principal ventaja es que, como su naturaleza lo indica, pueden ser&amp;#160; programados por el desarrollador, otorgando una flexibilidad que hasta&amp;#160; antes de la aparición de los shaders era poco más que impensada. Son utilizados para realizar transformaciones y crear&amp;#160; efectos especiales, como por ejemplo iluminación, fuego o niebla. Los shaders pueden programarse tanto en el lenguaje ensamblador nativo&amp;#160;  de la tarjeta gráfica (opción obsoleta) o en un lenguaje de alto nivel,&amp;#160;  como son el HLSL, GLSL o el Cg.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Shaders.''' Sin entrar en terrenos de difícil comprensión, los shaders son&amp;#160; pequeños programas que se encargan del procesamiento de vértices (Vertex shaders) y de pixeles (Píxel shaders).&amp;#160; La principal ventaja es que, como su naturaleza lo indica, pueden ser&amp;#160; programados por el desarrollador, otorgando una flexibilidad que hasta&amp;#160; antes de la aparición de los shaders era poco más que impensada. Son utilizados para realizar transformaciones y crear&amp;#160; efectos especiales, como por ejemplo iluminación, fuego o niebla. Los shaders pueden programarse tanto en el lenguaje ensamblador nativo&amp;#160;  de la tarjeta gráfica (opción obsoleta) o en un lenguaje de alto nivel,&amp;#160;  como son el HLSL, GLSL o el Cg.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l12&quot; &gt;Línea 12:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 13:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;En primer lugar fue el filtro de las texturas, para lo cual se crearon&amp;#160; chips especialmente dedicados para realizar esta tarea. Así nacieron las&amp;#160; famosas placas aceleradoras 3D, que incorporaban dichos chips y un cantidad de memoria propia en la misma tarjeta. Luego, con la salida del [[GeForce]] 256&amp;#160; de [[NVIDIA]], el procesador gráfico pasó a encargarse de lo que, hasta ese&amp;#160; momento, realizaba la [[CPU]]. Estamos hablando de la función de [[Transformación e Iluminación]] (Transform &amp;amp; Lighting),&amp;#160; utilizada para llevar a cabo los cálculos de geometría y de iluminación&amp;#160; general de una escena en 3D. Hubo una versión mejorada de este motor, a&amp;#160; la que se llamó de Segunda Generación. Ésta vino incluida a partir de&amp;#160; la [[GeForce]] 2 y la gama Radeon de [[ATI]], avanzando un poco más en cuanto a materia gráfica. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;En primer lugar fue el filtro de las texturas, para lo cual se crearon&amp;#160; chips especialmente dedicados para realizar esta tarea. Así nacieron las&amp;#160; famosas placas aceleradoras 3D, que incorporaban dichos chips y un cantidad de memoria propia en la misma tarjeta. Luego, con la salida del [[GeForce]] 256&amp;#160; de [[NVIDIA]], el procesador gráfico pasó a encargarse de lo que, hasta ese&amp;#160; momento, realizaba la [[CPU]]. Estamos hablando de la función de [[Transformación e Iluminación]] (Transform &amp;amp; Lighting),&amp;#160; utilizada para llevar a cabo los cálculos de geometría y de iluminación&amp;#160; general de una escena en 3D. Hubo una versión mejorada de este motor, a&amp;#160; la que se llamó de Segunda Generación. Ésta vino incluida a partir de&amp;#160; la [[GeForce]] 2 y la gama Radeon de [[ATI]], avanzando un poco más en cuanto a materia gráfica. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;El gran cambio se dio a partir de la incorporación de los Píxel shaders y Vertex shaders.&amp;#160; Esto permitió a los programadores una mayor libertad a la hora de&amp;#160; diseñar gráficos en tres dimensiones, ya que puede tratarse a cada píxel&amp;#160; y cada &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/del&gt;vértice&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/del&gt;por separado. De esta manera, los efectos especiales y&amp;#160; de iluminación puede crearse mucho más detalladamente, sucediendo lo&amp;#160; mismo con la geometría de los objetos.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;El gran cambio se dio a partir de la incorporación de los Píxel shaders y Vertex shaders.&amp;#160; Esto permitió a los programadores una mayor libertad a la hora de&amp;#160; diseñar gráficos en tres dimensiones, ya que puede tratarse a cada píxel&amp;#160; y cada vértice por separado. De esta manera, los efectos especiales y&amp;#160; de iluminación puede crearse mucho más detalladamente, sucediendo lo&amp;#160; mismo con la geometría de los objetos.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Vertex shader ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Vertex shader ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l22&quot; &gt;Línea 22:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 23:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Por otro lado, un Pixel Shader no interviene en el proceso de la&amp;#160; definición del &amp;quot;esqueleto&amp;quot; de la escena (conjunto de vértice,&amp;#160; wireframe), sino que forma parte de la segunda etapa: la rasterización o&amp;#160; render (paso a 2D del universo 3D). Allí es donde se aplican las&amp;#160; texturas y se tratan los píxeles que forman parte de ellas. Básicamente,&amp;#160; un Pixel Shader especifica el color de un píxel. Este tratamiento&amp;#160; individual de los píxeles permite que se realicen cálculos&amp;#160; principalmente relacionados con la iluminación en tiempo real, con la&amp;#160; posibilidad de iluminar cada pixel por separado. Así es como se lograron&amp;#160; crear los fabulosos efectos de este estilo que se pueden apreciar en videojuegos como [[Doom 3]], [[Far Cry]] y [[Half Life 2]],&amp;#160; por mencionar sólo los más conocidos. La particularidad de los píxel&amp;#160; shaders es que, a diferencia de los vertex shaders, requieren de un&amp;#160; soporte de hardware compatible. En otras palabras, un juego programado&amp;#160; para hacer uso de píxel shaders requiere si o si de una tarjeta de video&amp;#160; con capacidad para manipularlos.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Por otro lado, un Pixel Shader no interviene en el proceso de la&amp;#160; definición del &amp;quot;esqueleto&amp;quot; de la escena (conjunto de vértice,&amp;#160; wireframe), sino que forma parte de la segunda etapa: la rasterización o&amp;#160; render (paso a 2D del universo 3D). Allí es donde se aplican las&amp;#160; texturas y se tratan los píxeles que forman parte de ellas. Básicamente,&amp;#160; un Pixel Shader especifica el color de un píxel. Este tratamiento&amp;#160; individual de los píxeles permite que se realicen cálculos&amp;#160; principalmente relacionados con la iluminación en tiempo real, con la&amp;#160; posibilidad de iluminar cada pixel por separado. Así es como se lograron&amp;#160; crear los fabulosos efectos de este estilo que se pueden apreciar en videojuegos como [[Doom 3]], [[Far Cry]] y [[Half Life 2]],&amp;#160; por mencionar sólo los más conocidos. La particularidad de los píxel&amp;#160; shaders es que, a diferencia de los vertex shaders, requieren de un&amp;#160; soporte de hardware compatible. En otras palabras, un juego programado&amp;#160; para hacer uso de píxel shaders requiere si o si de una tarjeta de video&amp;#160; con capacidad para manipularlos.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Lenguajes==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Lenguajes ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Existen basicamente tres lenguajes de alto nivel para programar Shaders,&amp;#160; todos ellos utilizan un lenguaje tipo C y, en general, sus diferencias&amp;#160; son mínimas. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Existen basicamente tres lenguajes de alto nivel para programar Shaders,&amp;#160; todos ellos utilizan un lenguaje tipo C y, en general, sus diferencias&amp;#160; son mínimas. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== HLSL - DirectX High-Level Shader Language ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== HLSL-DirectX High-Level Shader Language ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Posiblemente este sea uno de los lenguajes de shading más utilizados en&amp;#160; la industria debido a la gran presión ejercida por [[Microsoft]], combinado&amp;#160; con el hecho que este fue el primero con estilo C utilizado para render&amp;#160; en tiempo real. El HLSL se introdujo con [[DirectX]] 9.0, apareciendo antes&amp;#160; que su competidor, el GLSL, además sus características han sido&amp;#160; extendidas a lo largo de varias revisiones para poder competir con el GLSL.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Posiblemente este sea uno de los lenguajes de shading más utilizados en&amp;#160; la industria debido a la gran presión ejercida por [[Microsoft]], combinado&amp;#160; con el hecho que este fue el primero con estilo C utilizado para render&amp;#160; en tiempo real. El HLSL se introdujo con [[DirectX]] 9.0, apareciendo antes&amp;#160; que su competidor, el GLSL, además sus características han sido&amp;#160; extendidas a lo largo de varias revisiones para poder competir con el GLSL.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki1:diff::1.12:old-1863428:rev-1984955 --&gt;
&lt;/table&gt;</summary>
		<author><name>Wendy idict</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Shaders&amp;diff=1863428&amp;oldid=prev</id>
		<title>Juan08071 en 13:19 4 abr 2013</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Shaders&amp;diff=1863428&amp;oldid=prev"/>
		<updated>2013-04-04T13:19:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 13:19 4 abr 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Línea 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Definición&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Definición&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|nombre=Shaders&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|nombre=Shaders&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|imagen=Ejemplo_de_shaders.jpg&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|concepto= Los shaders son programas, que se escriben en un lenguaje estándar, para&amp;#160; procesar tanto píxeles (Píxel Shader) como vértices (Vertex Shader).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|concepto= Los shaders son programas, que se escriben en un lenguaje estándar, para&amp;#160; procesar tanto píxeles (Píxel Shader) como vértices (Vertex Shader).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki1:diff::1.12:old-1130378:rev-1863428 --&gt;
&lt;/table&gt;</summary>
		<author><name>Juan08071</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Shaders&amp;diff=1130378&amp;oldid=prev</id>
		<title>CiegoAvila2 jc en 13:10 8 nov 2011</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Shaders&amp;diff=1130378&amp;oldid=prev"/>
		<updated>2011-11-08T13:10:06Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 13:10 8 nov 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l78&quot; &gt;Línea 78:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 78:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*[http://www.neoteo.com/pixel-shaders-y-vertex-shaders neoteo.com]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*[http://www.neoteo.com/pixel-shaders-y-vertex-shaders neoteo.com]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Solicitada&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Ciencias_informáticas&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki1:diff::1.12:old-1129770:rev-1130378 --&gt;
&lt;/table&gt;</summary>
		<author><name>CiegoAvila2 jc</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Shaders&amp;diff=1129770&amp;oldid=prev</id>
		<title>CiegoAvila2 jc en 23:06 7 nov 2011</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Shaders&amp;diff=1129770&amp;oldid=prev"/>
		<updated>2011-11-07T23:06:21Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 23:06 7 nov 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l11&quot; &gt;Línea 11:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 11:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Desde que comenzó la “revolución 3D” en el ámbito de los juegos de&amp;#160; computadora, allá por mediados de la década de los 90’, la tendencia de&amp;#160; la tecnología aplicada a este rubro ha sido trasladar el trabajo de&amp;#160; procesamiento de gráficos tridimensionales, desde la [[CPU]] hacia la&amp;#160; [[tarjeta de video]]. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Desde que comenzó la “revolución 3D” en el ámbito de los juegos de&amp;#160; computadora, allá por mediados de la década de los 90’, la tendencia de&amp;#160; la tecnología aplicada a este rubro ha sido trasladar el trabajo de&amp;#160; procesamiento de gráficos tridimensionales, desde la [[CPU]] hacia la&amp;#160; [[tarjeta de video]]. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;En primer lugar fue el filtro de las texturas, para lo cual se crearon&amp;#160; chips especialmente dedicados para realizar esta tarea. Así nacieron las&amp;#160; famosas placas aceleradoras 3D, que incorporaban dichos chips y un cantidad de memoria propia en la misma tarjeta. Luego, con la salida del GeForce 256&amp;#160; de [[NVIDIA]], el procesador gráfico pasó a encargarse de lo que, hasta ese&amp;#160; momento, realizaba la [[CPU]]. Estamos hablando de la función de [[Transformación e Iluminación]] (Transform &amp;amp; Lighting),&amp;#160; utilizada para llevar a cabo los cálculos de geometría y de iluminación&amp;#160; general de una escena en 3D. Hubo una versión mejorada de este motor, a&amp;#160; la que se llamó de Segunda Generación. Ésta vino incluida a partir de&amp;#160; la [[GeForce]] 2 y la gama Radeon de [[ATI]], avanzando un poco más en cuanto a materia gráfica. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;En primer lugar fue el filtro de las texturas, para lo cual se crearon&amp;#160; chips especialmente dedicados para realizar esta tarea. Así nacieron las&amp;#160; famosas placas aceleradoras 3D, que incorporaban dichos chips y un cantidad de memoria propia en la misma tarjeta. Luego, con la salida del &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;GeForce&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;256&amp;#160; de [[NVIDIA]], el procesador gráfico pasó a encargarse de lo que, hasta ese&amp;#160; momento, realizaba la [[CPU]]. Estamos hablando de la función de [[Transformación e Iluminación]] (Transform &amp;amp; Lighting),&amp;#160; utilizada para llevar a cabo los cálculos de geometría y de iluminación&amp;#160; general de una escena en 3D. Hubo una versión mejorada de este motor, a&amp;#160; la que se llamó de Segunda Generación. Ésta vino incluida a partir de&amp;#160; la [[GeForce]] 2 y la gama Radeon de [[ATI]], avanzando un poco más en cuanto a materia gráfica. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;El gran cambio se dio a partir de la incorporación de los Píxel shaders y Vertex shaders.&amp;#160; Esto permitió a los programadores una mayor libertad a la hora de&amp;#160; diseñar gráficos en tres dimensiones, ya que puede tratarse a cada píxel&amp;#160; y cada vértice por separado. De esta manera, los efectos especiales y&amp;#160; de iluminación puede crearse mucho más detalladamente, sucediendo lo&amp;#160; mismo con la geometría de los objetos.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;El gran cambio se dio a partir de la incorporación de los Píxel shaders y Vertex shaders.&amp;#160; Esto permitió a los programadores una mayor libertad a la hora de&amp;#160; diseñar gráficos en tres dimensiones, ya que puede tratarse a cada píxel&amp;#160; y cada &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;vértice&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;por separado. De esta manera, los efectos especiales y&amp;#160; de iluminación puede crearse mucho más detalladamente, sucediendo lo&amp;#160; mismo con la geometría de los objetos.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Vertex shader ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Vertex shader ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l33&quot; &gt;Línea 33:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 33:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== GLSL - OpenGL Shading Language ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== GLSL - OpenGL Shading Language ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;También conocido como glslang, este lenguaje de alto nivel apareció&amp;#160; con la llegada de [[OpenGL]] 2.0. El lenguaje ofrece un rico set de&amp;#160; instrucciones desde sus inicios, unificando el procesado de vértices y&amp;#160; fragmentos (pixels), y permitiendo 'loops' condicionales con estructuras&amp;#160; en árbol. Históricamente, GLSL ha venido precedido por varias extensiones&amp;#160; OpenGL como son ARB_vertex_program y ARB_fragment_program entre otras.&amp;#160; Estas operaban con programas de bajo nivel escritos en ensamblador y con&amp;#160; varias limitaciones. Estos lenguajes ensamblador ya han dejado de&amp;#160; utilizarse para dar paso al GLSL. A partir de la especificación OpenGL 2.0, OGLSL pasa a formar parte del estándar. Esto implica que si una tarjeta es compatible con ésta versión, no hará falta el uso de extensiones, y garantizará su correcto funcionamiento.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;También conocido como glslang, este lenguaje de alto nivel apareció&amp;#160; con la llegada de [[OpenGL]] 2.0. El lenguaje ofrece un rico set de&amp;#160; instrucciones desde sus inicios, unificando el procesado de vértices y&amp;#160; fragmentos (pixels), y permitiendo 'loops' condicionales con estructuras&amp;#160; en árbol. Históricamente, GLSL ha venido precedido por varias extensiones&amp;#160; OpenGL como son ARB_vertex_program y ARB_fragment_program entre otras.&amp;#160; Estas operaban con programas de bajo nivel escritos en ensamblador y con&amp;#160; varias limitaciones. Estos lenguajes ensamblador ya han dejado de&amp;#160; utilizarse para dar paso al GLSL. A partir de la especificación &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;OpenGL&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;2.0, OGLSL pasa a formar parte del estándar. Esto implica que si una tarjeta es compatible con ésta versión, no hará falta el uso de extensiones, y garantizará su correcto funcionamiento.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Cg - 'C for graphics' programming language ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Cg - 'C for graphics' programming language ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Este lenguaje fue desarrollado por [[NVIDIA]] y ha sido desarrollado con&amp;#160; el propósito de una fácil y eficiente integración en el proceso de&amp;#160; producción. El lenguaje es independiente de la [[API]] e incluye una gran&amp;#160; variedad de herramientas de soporte. Las primeras implementaciones de Cg eran bastante restrictivas&amp;#160; debido a la abstracción de hardware pero a lo largo de varias versiones,&amp;#160; se ha consolidado como un potente lenguaje de shading de alto nivel&amp;#160; capaz de competir con el HLSL y el GLSL. Por otro lado, la sintaxis es prácticamente idéntica al HLSL y&amp;#160; gracias a sus perfiles de compilación, puede generar código tanto para&amp;#160; los diferentes Shader Models de DirectX como también para las diferentes&amp;#160; extensiones OpenGL. En su última versión, la 1.5, incluso puede generar&amp;#160; código GLSL.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Este lenguaje fue desarrollado por [[NVIDIA]] y ha sido desarrollado con&amp;#160; el propósito de una fácil y eficiente integración en el proceso de&amp;#160; producción. El lenguaje es independiente de la [[API]] e incluye una gran&amp;#160; variedad de herramientas de soporte. Las primeras implementaciones de Cg eran bastante restrictivas&amp;#160; debido a la abstracción de hardware pero a lo largo de varias versiones,&amp;#160; se ha consolidado como un potente lenguaje de shading de alto nivel&amp;#160; capaz de competir con el HLSL y el GLSL. Por otro lado, la sintaxis es prácticamente idéntica al HLSL y&amp;#160; gracias a sus perfiles de compilación, puede generar código tanto para&amp;#160; los diferentes Shader Models de &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;DirectX&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;como también para las diferentes&amp;#160; extensiones &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;OpenGL&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]]&lt;/ins&gt;. En su última versión, la 1.5, incluso puede generar&amp;#160; código GLSL.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Versiones de los Shaders ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Versiones de los Shaders ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ha habido una evolución lógica de los Shaders en estos últimos años.&amp;#160; Este progreso tiene que ver, principalmente, con cuestiones internas de&amp;#160; programación. Parámetros como la cantidad de registros disponibles, el&amp;#160; número de instrucciones permitidas por programa y la incorporación de&amp;#160; instrucciones aritméticas más complejas, entre otros, aumentando la&amp;#160; flexibilidad a la hora de programarlos. Tanto [[OpenGL]] como [[DirectX]] han&amp;#160; utilizado sus propios mecanismos de revisión y puesta al día de sus&amp;#160; sistemas de shading. Mientras OpenGL se ha basando en el uso de&amp;#160; extensiones que se han ido ampliando, [[DirectX]] ha definido diferentes&amp;#160; modelos de shading (Shader Models), cada uno de estos modelos permite la&amp;#160; realización de nuevos efectos y un mayor aprovechamiento del hardware.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ha habido una evolución lógica de los Shaders en estos últimos años.&amp;#160; Este progreso tiene que ver, principalmente, con cuestiones internas de&amp;#160; programación. Parámetros como la cantidad de registros disponibles, el&amp;#160; número de instrucciones permitidas por programa y la incorporación de&amp;#160; instrucciones aritméticas más complejas, entre otros, aumentando la&amp;#160; flexibilidad a la hora de programarlos. Tanto [[OpenGL]] como [[DirectX]] han&amp;#160; utilizado sus propios mecanismos de revisión y puesta al día de sus&amp;#160; sistemas de shading. Mientras &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;OpenGL&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;se ha basando en el uso de&amp;#160; extensiones que se han ido ampliando, [[DirectX]] ha definido diferentes&amp;#160; modelos de shading (Shader Models), cada uno de estos modelos permite la&amp;#160; realización de nuevos efectos y un mayor aprovechamiento del hardware.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| align=center cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;background: #white; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot; width=75%&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| align=center cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;background: #white; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot; width=75%&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l71&quot; &gt;Línea 71:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 71:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Véase también ==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*[http://www.ecured.cu/index.php/Antialiasing Antialiasing]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*[http://www.ecured.cu/index.php/DirectX DirectX]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*[http://www.ecured.cu/index.php/OpenGL OpenGL]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Fuente ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Fuente ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki1:diff::1.12:old-1127516:rev-1129770 --&gt;
&lt;/table&gt;</summary>
		<author><name>CiegoAvila2 jc</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Shaders&amp;diff=1127516&amp;oldid=prev</id>
		<title>CiegoAvila2 jc en 17:41 7 nov 2011</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Shaders&amp;diff=1127516&amp;oldid=prev"/>
		<updated>2011-11-07T17:41:17Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 17:41 7 nov 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Línea 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;{{Normalizar}}&lt;/del&gt;{{Definición&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Definición&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|nombre=Shaders&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|nombre=Shaders&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|imagen=Ejemplo_de_shaders.jpg&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|imagen=Ejemplo_de_shaders.jpg&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l20&quot; &gt;Línea 20:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 20:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Píxel shader == &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Píxel shader == &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Archivo:Ejemplo_de_shaders_en_farcry.jpg|200px|thumb|right|FarCry, una pequeña muestra de lo que pueden hacer los shaders.]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Archivo:Ejemplo_de_shaders_en_farcry.jpg|200px|thumb|right|FarCry, una pequeña muestra de lo que pueden hacer los shaders &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;en los videojuegos&lt;/ins&gt;.]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Por otro lado, un Pixel Shader no interviene en el proceso de la&amp;#160; definición del &amp;quot;esqueleto&amp;quot; de la escena (conjunto de vértice,&amp;#160; wireframe), sino que forma parte de la segunda etapa: la rasterización o&amp;#160; render (paso a 2D del universo 3D). Allí es donde se aplican las&amp;#160; texturas y se tratan los píxeles que forman parte de ellas. Básicamente,&amp;#160; un Pixel Shader especifica el color de un píxel. Este tratamiento&amp;#160; individual de los píxeles permite que se realicen cálculos&amp;#160; principalmente relacionados con la iluminación en tiempo real, con la&amp;#160; posibilidad de iluminar cada pixel por separado. Así es como se lograron&amp;#160; crear los fabulosos efectos de este estilo que se pueden apreciar en videojuegos como [[Doom 3]], [[Far Cry]] y [[Half Life 2]],&amp;#160; por mencionar sólo los más conocidos. La particularidad de los píxel&amp;#160; shaders es que, a diferencia de los vertex shaders, requieren de un&amp;#160; soporte de hardware compatible. En otras palabras, un juego programado&amp;#160; para hacer uso de píxel shaders requiere si o si de una tarjeta de video&amp;#160; con capacidad para manipularlos.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Por otro lado, un Pixel Shader no interviene en el proceso de la&amp;#160; definición del &amp;quot;esqueleto&amp;quot; de la escena (conjunto de vértice,&amp;#160; wireframe), sino que forma parte de la segunda etapa: la rasterización o&amp;#160; render (paso a 2D del universo 3D). Allí es donde se aplican las&amp;#160; texturas y se tratan los píxeles que forman parte de ellas. Básicamente,&amp;#160; un Pixel Shader especifica el color de un píxel. Este tratamiento&amp;#160; individual de los píxeles permite que se realicen cálculos&amp;#160; principalmente relacionados con la iluminación en tiempo real, con la&amp;#160; posibilidad de iluminar cada pixel por separado. Así es como se lograron&amp;#160; crear los fabulosos efectos de este estilo que se pueden apreciar en videojuegos como [[Doom 3]], [[Far Cry]] y [[Half Life 2]],&amp;#160; por mencionar sólo los más conocidos. La particularidad de los píxel&amp;#160; shaders es que, a diferencia de los vertex shaders, requieren de un&amp;#160; soporte de hardware compatible. En otras palabras, un juego programado&amp;#160; para hacer uso de píxel shaders requiere si o si de una tarjeta de video&amp;#160; con capacidad para manipularlos.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki1:diff::1.12:old-1099003:rev-1127516 --&gt;
&lt;/table&gt;</summary>
		<author><name>CiegoAvila2 jc</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Shaders&amp;diff=1099003&amp;oldid=prev</id>
		<title>Mayaramayjc en 18:22 31 oct 2011</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Shaders&amp;diff=1099003&amp;oldid=prev"/>
		<updated>2011-10-31T18:22:11Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 18:22 31 oct 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Línea 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Definición&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;{{Normalizar}}&lt;/ins&gt;{{Definición&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|nombre=Shaders&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|nombre=Shaders&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|imagen=Ejemplo_de_shaders.jpg&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|imagen=Ejemplo_de_shaders.jpg&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki1:diff::1.12:old-1093681:rev-1099003 --&gt;
&lt;/table&gt;</summary>
		<author><name>Mayaramayjc</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Shaders&amp;diff=1093681&amp;oldid=prev</id>
		<title>CiegoAvila2 jc: Página creada con '{{Definición |nombre=Shaders |imagen=Ejemplo_de_shaders.jpg |concepto= Los shaders son programas, que se escriben en un lenguaje estándar, para  procesar tanto píxeles (Píxe...'</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Shaders&amp;diff=1093681&amp;oldid=prev"/>
		<updated>2011-10-29T16:09:58Z</updated>

		<summary type="html">&lt;p&gt;Página creada con &amp;#039;{{Definición |nombre=Shaders |imagen=Ejemplo_de_shaders.jpg |concepto= Los shaders son programas, que se escriben en un lenguaje estándar, para  procesar tanto píxeles (Píxe...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Definición&lt;br /&gt;
|nombre=Shaders&lt;br /&gt;
|imagen=Ejemplo_de_shaders.jpg&lt;br /&gt;
|concepto= Los shaders son programas, que se escriben en un lenguaje estándar, para  procesar tanto píxeles (Píxel Shader) como vértices (Vertex Shader).&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Shaders.''' Sin entrar en terrenos de difícil comprensión, los shaders son  pequeños programas que se encargan del procesamiento de vértices (Vertex shaders) y de pixeles (Píxel shaders).  La principal ventaja es que, como su naturaleza lo indica, pueden ser  programados por el desarrollador, otorgando una flexibilidad que hasta  antes de la aparición de los shaders era poco más que impensada. Son utilizados para realizar transformaciones y crear  efectos especiales, como por ejemplo iluminación, fuego o niebla. Los shaders pueden programarse tanto en el lenguaje ensamblador nativo   de la tarjeta gráfica (opción obsoleta) o en un lenguaje de alto nivel,   como son el HLSL, GLSL o el Cg.&lt;br /&gt;
&lt;br /&gt;
== Historia ==&lt;br /&gt;
&lt;br /&gt;
Desde que comenzó la “revolución 3D” en el ámbito de los juegos de  computadora, allá por mediados de la década de los 90’, la tendencia de  la tecnología aplicada a este rubro ha sido trasladar el trabajo de  procesamiento de gráficos tridimensionales, desde la [[CPU]] hacia la  [[tarjeta de video]]. &lt;br /&gt;
&lt;br /&gt;
En primer lugar fue el filtro de las texturas, para lo cual se crearon  chips especialmente dedicados para realizar esta tarea. Así nacieron las  famosas placas aceleradoras 3D, que incorporaban dichos chips y un cantidad de memoria propia en la misma tarjeta. Luego, con la salida del GeForce 256  de [[NVIDIA]], el procesador gráfico pasó a encargarse de lo que, hasta ese  momento, realizaba la [[CPU]]. Estamos hablando de la función de [[Transformación e Iluminación]] (Transform &amp;amp; Lighting),  utilizada para llevar a cabo los cálculos de geometría y de iluminación  general de una escena en 3D. Hubo una versión mejorada de este motor, a  la que se llamó de Segunda Generación. Ésta vino incluida a partir de  la [[GeForce]] 2 y la gama Radeon de [[ATI]], avanzando un poco más en cuanto a materia gráfica. &lt;br /&gt;
&lt;br /&gt;
El gran cambio se dio a partir de la incorporación de los Píxel shaders y Vertex shaders.  Esto permitió a los programadores una mayor libertad a la hora de  diseñar gráficos en tres dimensiones, ya que puede tratarse a cada píxel  y cada vértice por separado. De esta manera, los efectos especiales y  de iluminación puede crearse mucho más detalladamente, sucediendo lo  mismo con la geometría de los objetos.&lt;br /&gt;
&lt;br /&gt;
== Vertex shader ==&lt;br /&gt;
&lt;br /&gt;
Un vertex shader es una función que recibe como parámetro un  vértice. Sólo trabaja con un vértice a la vez, y no puede eliminarlo,  sólo transformarlo. Para ello, modifica propiedades del mismo para que  repercutan en la geometría del objeto al que pertenece. Con ésto se  puede lograr ciertos efectos específicos, como los que tienen que ver  con la deformación en tiempo real de un elemento; por ejemplo, el  movimiento de una ola. Donde toma una gran importancia es en el  tratamiento de las superficies curvas, y su avance se vio reflejado en  los videojuegos más avanzados de la actualidad. Particularmente, en el  diseño de los personajes y sus expresiones corporales. &lt;br /&gt;
&lt;br /&gt;
== Píxel shader == &lt;br /&gt;
[[Archivo:Ejemplo_de_shaders_en_farcry.jpg|200px|thumb|right|FarCry, una pequeña muestra de lo que pueden hacer los shaders.]]&lt;br /&gt;
Por otro lado, un Pixel Shader no interviene en el proceso de la  definición del &amp;quot;esqueleto&amp;quot; de la escena (conjunto de vértice,  wireframe), sino que forma parte de la segunda etapa: la rasterización o  render (paso a 2D del universo 3D). Allí es donde se aplican las  texturas y se tratan los píxeles que forman parte de ellas. Básicamente,  un Pixel Shader especifica el color de un píxel. Este tratamiento  individual de los píxeles permite que se realicen cálculos  principalmente relacionados con la iluminación en tiempo real, con la  posibilidad de iluminar cada pixel por separado. Así es como se lograron  crear los fabulosos efectos de este estilo que se pueden apreciar en videojuegos como [[Doom 3]], [[Far Cry]] y [[Half Life 2]],  por mencionar sólo los más conocidos. La particularidad de los píxel  shaders es que, a diferencia de los vertex shaders, requieren de un  soporte de hardware compatible. En otras palabras, un juego programado  para hacer uso de píxel shaders requiere si o si de una tarjeta de video  con capacidad para manipularlos.&lt;br /&gt;
&lt;br /&gt;
== Lenguajes==&lt;br /&gt;
&lt;br /&gt;
Existen basicamente tres lenguajes de alto nivel para programar Shaders,  todos ellos utilizan un lenguaje tipo C y, en general, sus diferencias  son mínimas. &lt;br /&gt;
&lt;br /&gt;
=== HLSL - DirectX High-Level Shader Language ===&lt;br /&gt;
&lt;br /&gt;
Posiblemente este sea uno de los lenguajes de shading más utilizados en  la industria debido a la gran presión ejercida por [[Microsoft]], combinado  con el hecho que este fue el primero con estilo C utilizado para render  en tiempo real. El HLSL se introdujo con [[DirectX]] 9.0, apareciendo antes  que su competidor, el GLSL, además sus características han sido  extendidas a lo largo de varias revisiones para poder competir con el GLSL.&lt;br /&gt;
&lt;br /&gt;
=== GLSL - OpenGL Shading Language ===&lt;br /&gt;
&lt;br /&gt;
También conocido como glslang, este lenguaje de alto nivel apareció  con la llegada de [[OpenGL]] 2.0. El lenguaje ofrece un rico set de  instrucciones desde sus inicios, unificando el procesado de vértices y  fragmentos (pixels), y permitiendo 'loops' condicionales con estructuras  en árbol. Históricamente, GLSL ha venido precedido por varias extensiones  OpenGL como son ARB_vertex_program y ARB_fragment_program entre otras.  Estas operaban con programas de bajo nivel escritos en ensamblador y con  varias limitaciones. Estos lenguajes ensamblador ya han dejado de  utilizarse para dar paso al GLSL. A partir de la especificación OpenGL 2.0, OGLSL pasa a formar parte del estándar. Esto implica que si una tarjeta es compatible con ésta versión, no hará falta el uso de extensiones, y garantizará su correcto funcionamiento.&lt;br /&gt;
&lt;br /&gt;
=== Cg - 'C for graphics' programming language ===&lt;br /&gt;
&lt;br /&gt;
Este lenguaje fue desarrollado por [[NVIDIA]] y ha sido desarrollado con  el propósito de una fácil y eficiente integración en el proceso de  producción. El lenguaje es independiente de la [[API]] e incluye una gran  variedad de herramientas de soporte. Las primeras implementaciones de Cg eran bastante restrictivas  debido a la abstracción de hardware pero a lo largo de varias versiones,  se ha consolidado como un potente lenguaje de shading de alto nivel  capaz de competir con el HLSL y el GLSL. Por otro lado, la sintaxis es prácticamente idéntica al HLSL y  gracias a sus perfiles de compilación, puede generar código tanto para  los diferentes Shader Models de DirectX como también para las diferentes  extensiones OpenGL. En su última versión, la 1.5, incluso puede generar  código GLSL.&lt;br /&gt;
&lt;br /&gt;
== Versiones de los Shaders ==&lt;br /&gt;
&lt;br /&gt;
Ha habido una evolución lógica de los Shaders en estos últimos años.  Este progreso tiene que ver, principalmente, con cuestiones internas de  programación. Parámetros como la cantidad de registros disponibles, el  número de instrucciones permitidas por programa y la incorporación de  instrucciones aritméticas más complejas, entre otros, aumentando la  flexibilidad a la hora de programarlos. Tanto [[OpenGL]] como [[DirectX]] han  utilizado sus propios mecanismos de revisión y puesta al día de sus  sistemas de shading. Mientras OpenGL se ha basando en el uso de  extensiones que se han ido ampliando, [[DirectX]] ha definido diferentes  modelos de shading (Shader Models), cada uno de estos modelos permite la  realización de nuevos efectos y un mayor aprovechamiento del hardware.&lt;br /&gt;
&lt;br /&gt;
{| align=center cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;background: #white; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot; width=75%&lt;br /&gt;
|- bgcolor=#000000 style=&amp;quot;color:white;&amp;quot;&lt;br /&gt;
|- align=left bgcolor=#EBF5FF&lt;br /&gt;
! ''' Versión de DirectX'''&lt;br /&gt;
! ''' Shader Models soportados'''&lt;br /&gt;
! ''' Características Shader Models'''&lt;br /&gt;
|-&lt;br /&gt;
|  [[DirectX]] 8.0 &lt;br /&gt;
|   Vertex Shader 1.0, Pixel Shader 1.1 &lt;br /&gt;
|    Primera generación de shaders, punto fijo, rango limitado, pequeños programas asm (fp:8 - vp:128), sin control de flujo. &lt;br /&gt;
|-&lt;br /&gt;
|  [[DirectX]] 8.1 &lt;br /&gt;
|   Vertex Shader 1.1, Pixel Shader 1.3 y 1.4 &lt;br /&gt;
|    Primera generación de shaders, punto fijo, rango limitado, pequeños programas asm (fp:8 - vp:128), sin control de flujo. &lt;br /&gt;
|-&lt;br /&gt;
|  [[DirectX]] 9.0 &lt;br /&gt;
|   Vertex Shader 2.0, Pixel Shader 2.0 &lt;br /&gt;
| Segunda generación de shaders, operaciones en coma flotante, cierto control de flujo, programas mas largos HLSL (fp:96 - vp:256)&lt;br /&gt;
|-&lt;br /&gt;
|  [[DirectX]] 9.0c &lt;br /&gt;
|   Vertex Shader 3.0, Pixel Shader 3.0 &lt;br /&gt;
| Tercera generación de shaders, control dinámico de flujo, programas largos HLSL (fp:65k - vp:65k)&lt;br /&gt;
|-&lt;br /&gt;
|  [[DirectX]] 10 &lt;br /&gt;
|   Vertex Shader 4.0, Pixel Shader 4.0 &lt;br /&gt;
| Cuarta generación de shaders, control dinámico de flujo, programas largos HLSL (fp:99k - vp:65k), mayor número de registros y texturas.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Véase también ==&lt;br /&gt;
&lt;br /&gt;
*[http://www.ecured.cu/index.php/Antialiasing Antialiasing]&lt;br /&gt;
*[http://www.ecured.cu/index.php/DirectX DirectX]&lt;br /&gt;
*[http://www.ecured.cu/index.php/OpenGL OpenGL]&lt;br /&gt;
&lt;br /&gt;
== Fuente ==&lt;br /&gt;
&lt;br /&gt;
*[http://sabia.tic.udc.es/gc/teoria/TrabajoHLSLs/index.html sabia.tic.udc.es]&lt;br /&gt;
*[http://www.raysanweb.com/articles/shaders.htm raysanweb.com]&lt;br /&gt;
*[http://www.neoteo.com/pixel-shaders-y-vertex-shaders neoteo.com]&lt;br /&gt;
&lt;br /&gt;
[[Category:Solicitada]]&lt;/div&gt;</summary>
		<author><name>CiegoAvila2 jc</name></author>
		
	</entry>
</feed>