Merge pull request #744 from lukaspj/Ribbon-Implementation

Ribbon and RibbonNode
This commit is contained in:
Daniel Buckmaster 2014-10-28 15:19:17 +11:00
commit ef9bc91bff
27 changed files with 1753 additions and 0 deletions

View file

@ -0,0 +1,77 @@
//-----------------------------------------------------------------------------
// Copyright (c) 2012 GarageGames, LLC
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
// IN THE SOFTWARE.
//-----------------------------------------------------------------------------
// This material should work fine for uniformly colored ribbons.
//Basic ribbon shader/////////////////////////////////////////////
new ShaderData( BasicRibbonShader )
{
DXVertexShaderFile = "shaders/common/ribbons/basicRibbonShaderV.hlsl";
DXPixelShaderFile = "shaders/common/ribbons/basicRibbonShaderP.hlsl";
pixVersion = 2.0;
};
singleton CustomMaterial( BasicRibbonMat )
{
shader = BasicRibbonShader;
version = 2.0;
emissive[0] = true;
doubleSided = true;
translucent = true;
BlendOp = AddAlpha;
translucentBlendOp = AddAlpha;
preload = true;
};
// This material can render a texture on top of a ribbon.
//Texture ribbon shader/////////////////////////////////////////////
new ShaderData( TexturedRibbonShader )
{
DXVertexShaderFile = "shaders/common/ribbons/texRibbonShaderV.hlsl";
DXPixelShaderFile = "shaders/common/ribbons/texRibbonShaderP.hlsl";
pixVersion = 2.0;
};
singleton CustomMaterial( TexturedRibbonMat )
{
shader = TexturedRibbonShader;
version = 2.0;
emissive[0] = true;
doubleSided = true;
translucent = true;
BlendOp = AddAlpha;
translucentBlendOp = AddAlpha;
sampler["ribTex"] = "art/ribbons/ribTex.png";
preload = true;
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

View file

@ -0,0 +1,23 @@
//-----------------------------------------------------------------------------
// Copyright (c) 2012 GarageGames, LLC
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
// IN THE SOFTWARE.
//-----------------------------------------------------------------------------
exec("./ribbons.cs");

View file

@ -0,0 +1,63 @@
//-----------------------------------------------------------------------------
// Copyright (c) 2012 GarageGames, LLC
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
// IN THE SOFTWARE.
//-----------------------------------------------------------------------------
datablock RibbonNodeData(DefaultRibbonNodeData)
{
timeMultiple = 1.0;
};
//ribbon data////////////////////////////////////////
datablock RibbonData(BasicRibbon)
{
size[0] = 0.5;
color[0] = "1.0 0.0 0.0 1.0";
position[0] = 0.0;
size[1] = 0.0;
color[1] = "1.0 0.0 0.0 0.0";
position[1] = 1.0;
RibbonLength = 40;
fadeAwayStep = 0.1;
UseFadeOut = true;
RibbonMaterial = BasicRibbonMat;
};
datablock RibbonData(TexturedRibbon)
{
RibbonMaterial = TexturedRibbonMat;
size[0] = 0.5;
color[0] = "1.0 1.0 1.0 1.0";
position[0] = 0.0;
size[1] = 0.5;
color[1] = "1.0 1.0 1.0 1.0";
position[1] = 1.0;
RibbonLength = 40;
fadeAwayStep = 0.1;
UseFadeOut = true;
tileScale = 1;
fixedTexCoords = true;
TexcoordsRelativeToDistance = true;
};