2366 lines
79 KiB
Text
2366 lines
79 KiB
Text
-- ********************
|
|
-- * Developper notes *
|
|
-- ********************
|
|
-- *
|
|
-- * - Increment major version when changing the parameters structure, comment your new attributes
|
|
-- * to tell they have been added since version x. Backup the old script file to keep old file format.
|
|
-- * - Increment minor version when changing the code or UI
|
|
-- * - Manage new field initialisation when changing the parameters structure in the update method
|
|
-- * - In your changes, keep in mind the discreet note:
|
|
-- * Parameter blocks that were per-instance cannot be made per-class and vice versa.
|
|
-- * Parameters cannot change type across redefinitions.
|
|
-- * Parameters cannot not move from one parameter block to another across redefinitions
|
|
-- *
|
|
-- ********************
|
|
|
|
-- *** Some constant
|
|
|
|
-- Blend mode
|
|
|
|
BlendOne = 1
|
|
BlendZero = 2
|
|
BlendSrcAlpha = 3
|
|
BlendInvSrcAlpha = 4
|
|
BlendSrcRGB = 5
|
|
BlendInvSrcRGB = 6
|
|
BlendDestAlpha = 7
|
|
BlendInvDestAlpha = 8
|
|
BlendDestRGB = 9
|
|
BlendInvDestRGB = 10
|
|
|
|
-- Stage operator
|
|
|
|
OptorReplace = 1
|
|
OptorModulate = 2
|
|
OptorAdd = 3
|
|
OptorAddSigned = 4
|
|
OptorBlend = 5
|
|
|
|
-- Stage source
|
|
|
|
SrcBlendTexture = 1
|
|
SrcBlendPrevious = 2
|
|
SrcBlendDiffuse = 3
|
|
SrcBlendConstant = 4
|
|
|
|
Src0Texture = 1
|
|
Src0Previous = 2
|
|
Src0Diffuse = 3
|
|
Src0Constant = 4
|
|
|
|
Src1Previous = 1
|
|
Src1Diffuse = 2
|
|
Src1Constant = 3
|
|
|
|
-- Stage source operand
|
|
|
|
OprdRGB = 1
|
|
OprdInvRGB = 2
|
|
OprdAlpha = 3
|
|
OprdInvAlpha = 4
|
|
|
|
-- Stage operand
|
|
|
|
OprandSrcRGB = 1
|
|
OprandInvSrcRGB = 2
|
|
OprandSrcAlpha = 3
|
|
OprandInvSrcAlpha = 4
|
|
|
|
-- Texture Shader
|
|
|
|
TextureShaderDisable = 1
|
|
|
|
-- Normal Shader
|
|
|
|
ShaderSingleTexture = 1
|
|
ShaderAddTwoTextures = 2
|
|
ShaderMulTwoTextures = 3
|
|
ShaderBlendTwoTextures = 4
|
|
ShaderBlendMask = 5
|
|
ShaderMixTwoTextures = 6
|
|
|
|
-- Shader Type
|
|
|
|
ShaderNormal = 1
|
|
ShaderBump = 2
|
|
ShaderUserColor = 3
|
|
ShaderLightmap = 4
|
|
ShaderSpecular = 5
|
|
ShaderWater = 6
|
|
ShaderPerPixelLighting = 7
|
|
ShaderPerPixelLightingNoSpec = 7
|
|
|
|
|
|
|
|
----------------------------------------------------------------------------------------------------------------
|
|
fn convertMaxBitmapToNelBitmap maxMap =
|
|
(
|
|
if classOf maxMap == NelBitmapTexture then
|
|
(
|
|
return maxMap -- no needs to change
|
|
)
|
|
if maxMap == undefined then
|
|
(
|
|
print "undefined map"
|
|
return undefined
|
|
)
|
|
print "converting bitmap"
|
|
nelMap = NelBitmapTexture()
|
|
base = nelMap.delegate
|
|
-- copy args
|
|
base.clipu = maxMap.clipu
|
|
base.clipv = maxMap.clipv
|
|
base.clipw = maxMap.clipw
|
|
base.cliph = maxMap.cliph
|
|
base.jitter = maxMap.jitter
|
|
base.useJitter = maxMap.useJitter
|
|
base.apply = maxMap.apply
|
|
base.cropPlace = maxMap.cropPlace
|
|
base.filtering = maxMap.filtering
|
|
base.monoOutput = maxMap.monoOutput
|
|
base.rgbOutput = maxMap.rgbOutput
|
|
base.alphaSource = maxMap.alphaSource
|
|
base.preMultAlpha = maxMap.preMultAlpha
|
|
base.bitmap = maxMap.bitmap
|
|
base.coords = maxMap.coords
|
|
base.output = maxMap.output
|
|
base.fileName = maxMap.fileName
|
|
base.startTime = maxMap.startTime
|
|
base.playBackRate = maxMap.playBackRate
|
|
base.endCondition = maxMap.endCondition
|
|
|
|
-- Duplicate the bitmap in the first bitmap slot
|
|
nelMap.bitmap1FileName = nelMap.bitmap.fileName
|
|
|
|
print "return nel map"
|
|
return nelMap
|
|
)
|
|
|
|
----------------------------------------------------------------------------------------------------------------
|
|
-- takes a material (max standard, max Multi/SubObject, nel), and transform each of its texture that are bitmap
|
|
-- to a NeL bitmap.
|
|
fn convertMaterialChangingBitmap destMat =
|
|
(
|
|
if (classOf destMat == NelMaterial) then -- is it a NelMaterial ?
|
|
(
|
|
print "converting nel material"
|
|
destMat.tTexture_1 = convertMaxBitmapToNelBitmap(destMat.tTexture_1)
|
|
destMat.tTexture_2 = convertMaxBitmapToNelBitmap(destMat.tTexture_2)
|
|
destMat.tTexture_3 = convertMaxBitmapToNelBitmap(destMat.tTexture_3)
|
|
destMat.tTexture_4 = convertMaxBitmapToNelBitmap(destMat.tTexture_4)
|
|
destMat.tTexture_5 = convertMaxBitmapToNelBitmap(destMat.tTexture_5)
|
|
destMat.tTexture_6 = convertMaxBitmapToNelBitmap(destMat.tTexture_6)
|
|
destMat.tTexture_7 = convertMaxBitmapToNelBitmap(destMat.tTexture_7)
|
|
destMat.tTexture_8 = convertMaxBitmapToNelBitmap(destMat.tTexture_8)
|
|
)
|
|
else if (classOf destMat == StandardMaterial) then
|
|
(
|
|
print "converting standard material"
|
|
for j = 1 to 12 do
|
|
(
|
|
destMat.maps[j] = convertMaxBitmapToNelBitmap(destMat.maps[j])
|
|
)
|
|
)
|
|
else if (classOf destMat == Multimaterial) then
|
|
(
|
|
-- performs this on each submaterial
|
|
for k = 1 to destMat.materialList.count do
|
|
(
|
|
if destMat.materialList[k] != undefined then
|
|
(
|
|
convertMaterialChangingBitmap destMat.materialList[k]
|
|
)
|
|
)
|
|
)
|
|
-- else no convertible material
|
|
)
|
|
|
|
----------------------------------------------------------------------------------------------------------------
|
|
-- This function helps to convert bitmap for an object from max Bitmap to nel BitmapTexture. This operate on all selected objects
|
|
fn convertMaxBitmapToNelBitmapForSelection =
|
|
(
|
|
for i = 1 to selection.count do
|
|
(
|
|
if (selection[i].material != undefined) then
|
|
(
|
|
convertMaterialChangingBitmap selection[i].material
|
|
)
|
|
)
|
|
)
|
|
|
|
|
|
----------------------------------------------------------------------------------------------------------------
|
|
-- a MacroScript That performs a call to convertMaxBitmapToNelBitmapForMesh
|
|
|
|
macroScript ConvertMaxBitmapToNelBitmapMacroScript category:"NEVRAX Tools" tooltip:"Convert all material of the selection so that they use Nel Bitmap instead of max ones"
|
|
(
|
|
convertMaxBitmapToNelBitmapForSelection()
|
|
)
|
|
|
|
|
|
----------------------------------------------------------------------------------------------------------------
|
|
-- Select a slot in a NeL bitmap
|
|
fn selectNelBitmap nelBitmap bitmapIndex =
|
|
(
|
|
if (classOf nelBitmap == NelBitmapTexture) then
|
|
(
|
|
print "selecting bitmap : " + bitmapIndex as string
|
|
local srcBitmapName
|
|
if bitmapIndex == 1 then ( srcBitmapName = nelBitmap.bitmap1FileName )
|
|
if bitmapIndex == 2 then ( srcBitmapName = nelBitmap.bitmap2FileName )
|
|
if bitmapIndex == 3 then ( srcBitmapName = nelBitmap.bitmap3FileName )
|
|
if bitmapIndex == 4 then ( srcBitmapName = nelBitmap.bitmap4FileName )
|
|
|
|
-- If not present takes the first bitmap
|
|
if srcBitmapName == "" then
|
|
(
|
|
srcBitmapName = nelBitmap.bitmap1FileName
|
|
)
|
|
if srcBitmapName == undefined then
|
|
(
|
|
srcBitmapName = ""
|
|
)
|
|
print "fileName = " + srcBitmapName
|
|
nelBitmap.bitmap.fileName = srcBitmapName
|
|
nelBitmap.currSelectedTextureSet = bitmapIndex
|
|
NelReloadTexture nelBitmap.bitmap
|
|
)
|
|
else
|
|
(
|
|
if nelBitmap != undefined then
|
|
(
|
|
print "selecting bitmap : not a NelBitmapTexture"
|
|
)
|
|
)
|
|
)
|
|
|
|
|
|
----------------------------------------------------------------------------------------------------------------
|
|
-- Select one bitmap in a nel MultiBitmap for the given material, and setup it as the current displayed bitmap
|
|
fn selectNelBitmapInMaterial destMat bitmapIndex =
|
|
(
|
|
-- we just takes the bitmap from the given bitmap or the bitmap from the slot 0 if it doesn't exist
|
|
if (classOf destMat == NelMaterial) then -- is it a NelMaterial ?
|
|
(
|
|
print "selecting textures in a NelMaterial"
|
|
selectNelBitmap destMat.tTexture_1 bitmapIndex
|
|
selectNelBitmap destMat.tTexture_2 bitmapIndex
|
|
selectNelBitmap destMat.tTexture_3 bitmapIndex
|
|
selectNelBitmap destMat.tTexture_4 bitmapIndex
|
|
selectNelBitmap destMat.tTexture_5 bitmapIndex
|
|
selectNelBitmap destMat.tTexture_6 bitmapIndex
|
|
selectNelBitmap destMat.tTexture_7 bitmapIndex
|
|
selectNelBitmap destMat.tTexture_8 bitmapIndex
|
|
)
|
|
else if (classOf destMat == StandardMaterial) then
|
|
(
|
|
print "selecting textures in a StandardMaterial"
|
|
for j = 1 to 12 do
|
|
(
|
|
selectNelBitmap destMat.maps[j] bitmapIndex
|
|
)
|
|
)
|
|
else if (classOf destMat == Multimaterial) then
|
|
(
|
|
print "selecting textures in a Multimaterial"
|
|
-- performs this on each submaterial
|
|
for k = 1 to destMat.materialList.count do
|
|
(
|
|
if destMat.materialList[k] != undefined then
|
|
(
|
|
selectNelBitmapInMaterial destMat.materialList[k] bitmapIndex
|
|
)
|
|
)
|
|
)
|
|
else
|
|
(
|
|
print "no convertible materials :" + (classOf destMat) as string
|
|
)
|
|
)
|
|
|
|
----------------------------------------------------------------------------------------------------------------
|
|
|
|
fn selectNelBitmapInSelection bitmapIndex =
|
|
(
|
|
for n = 1 to selection.count do
|
|
(
|
|
if selection[n].material != undefined then
|
|
(
|
|
selectNelBitmapInMaterial selection[n].material bitmapIndex
|
|
)
|
|
)
|
|
)
|
|
|
|
|
|
----------------------------------------------------------------------------------------------------------------
|
|
-- Macro scripts that performs the selection of a set of bitmaps
|
|
macroScript SelectNelBitmapSet1 category:"NEVRAX Tools" tooltip:"Select the first set of bitmap for the selected meshs"
|
|
(
|
|
selectNelBitmapInSelection 1
|
|
)
|
|
|
|
macroScript SelectNelBitmapSet2 category:"NEVRAX Tools" tooltip:"Select the second set of bitmap for the selected meshs"
|
|
(
|
|
selectNelBitmapInSelection 2
|
|
)
|
|
|
|
macroScript SelectNelBitmapSet3 category:"NEVRAX Tools" tooltip:"Select the third set of bitmap for the selected meshs"
|
|
(
|
|
selectNelBitmapInSelection 3
|
|
)
|
|
|
|
macroScript SelectNelBitmapSet4 category:"NEVRAX Tools" tooltip:"Select the fourth set of bitmap for the selected meshs"
|
|
(
|
|
selectNelBitmapInSelection 4
|
|
)
|
|
|
|
|
|
|
|
----------------------------------------------------------------------------------------------------------------
|
|
----------------------------------------------------------------------------------------------------------------
|
|
----------------------------------------------------------------------------------------------------------------
|
|
----------------------------------------------------------------------------------------------------------------
|
|
----------------------------------------------------------------------------------------------------------------
|
|
|
|
-- Nel Material properties
|
|
plugin material NelMaterial
|
|
name:"NeL Material"
|
|
classID:#(0x64c75fec, 0x222b9eb9)
|
|
extends:standard
|
|
replaceUI:true
|
|
version:14.0
|
|
(
|
|
local loadShader
|
|
local globalUpdateUI
|
|
local updateTextureName
|
|
|
|
local updateToVersion4 = false
|
|
local updateToVersion14 = false
|
|
|
|
parameters nlbp rollout:nelBasicParameters
|
|
(
|
|
bTwoSided type:#boolean
|
|
cAmbient type:#color
|
|
cDiffuse type:#color
|
|
pOpacity type:#percent
|
|
cSpecular type:#color
|
|
pSpecularLevel type:#percent
|
|
pGlossiness type:#percent
|
|
cSelfIllumColor type:#color
|
|
pSelfIllumAmount type:#percent
|
|
bUseSelfIllumColor type:#boolean
|
|
)
|
|
|
|
parameters main rollout:NelParams
|
|
(
|
|
-- 3d part of the material
|
|
bLightMap type:#boolean default:false
|
|
bUnlighted type:#boolean default:false ui:cbUnlighted
|
|
bStainedGlassWindow type:#boolean default:false ui:cbStainedGlassWindow
|
|
|
|
bAlphaTest type:#boolean default:false ui:cbAlphaTest
|
|
bForceZWrite type:#boolean default:false ui:cbForceZWrite
|
|
bForceNoZWrite type:#boolean default:false ui:cbForceNoZWrite
|
|
bWater type:#boolean default:false
|
|
|
|
bWaterUseSceneEnvMapAbove type:#boolean default:false ui:cbWaterUseSceneEnvMapAbove
|
|
bWaterUseSceneEnvMapUnder type:#boolean default:false ui:cbWaterUseSceneEnvMapUnder
|
|
|
|
|
|
fBumpUScale type:#float default: 0.01 ui:cfBumpUScale
|
|
fBumpVScale type:#float default: 0.01 ui:cfBumpVScale
|
|
fBumpUSpeed type:#float default: 0.01 ui:cfBumpUSpeed
|
|
fBumpVSpeed type:#float default: 0.01 ui:cfBumpVSpeed
|
|
|
|
fDisplaceMapUScale type:#float default: 0.005 ui:cfDisplaceMapUScale
|
|
fDisplaceMapVScale type:#float default: 0.005 ui:cfDisplaceMapVScale
|
|
fDisplaceMapUSpeed type:#float default: 0.005 ui:cfDisplaceMapUSpeed
|
|
fDisplaceMapVSpeed type:#float default: 0.005 ui:cfDisplaceMapVSpeed
|
|
|
|
fWaterHeightFactor type:#float default: 1.0 ui:cfWaterHeightFactor
|
|
iWaterPoolID type:#integer default: 0 ui:ciWaterPoolID
|
|
|
|
-- new in version 7
|
|
bCalcWaterLightmap type:#boolean default:false ui:cbCalcWaterLightmap
|
|
|
|
-- new in version 10
|
|
bEnableWaterSplash type:#boolean default:true ui:cbEnableWaterSplash
|
|
|
|
|
|
-- New in version 3
|
|
bColorVertex type:#boolean default:false ui:cbColorVertex
|
|
bAlphaVertex type:#boolean default:false ui:cbAlphaVertex
|
|
iAlphaVertexChannel type:#integer default:0 ui:ciAlphaVertexChannel
|
|
|
|
-- New in version 4
|
|
bAlphaBlend type:#boolean default:false ui:cbAlphaBlend
|
|
iBlendSrcFunc type:#integer default:1
|
|
iBlendDestFunc type:#integer default:1
|
|
iShader type:#integer default:1
|
|
fZBias type:#float default:0 ui:cfZBias
|
|
iLightMapChannel type:#integer default:2 ui:ciLightMapChannel
|
|
iShaderType type:#integer default:1
|
|
bUserColor type:#boolean
|
|
bSpecular type:#boolean
|
|
bNormalShader type:#boolean
|
|
bPerPixelLightingShader type:#boolean
|
|
cUserColor type:#color default:[255,0,255] ui:cpUserColor
|
|
|
|
-- New in version 5
|
|
bExportTextureMatrix type:#boolean default:false ui:cbExportTextureMatrix
|
|
)
|
|
|
|
parameters textures rollout:NelTexture
|
|
(
|
|
bEnableSlot_1 type:#boolean default:false ui:cbEnableSlot_1
|
|
bEnableSlot_2 type:#boolean default:false ui:cbEnableSlot_2
|
|
bEnableSlot_3 type:#boolean default:false ui:cbEnableSlot_3
|
|
bEnableSlot_4 type:#boolean default:false ui:cbEnableSlot_4
|
|
bEnableSlot_5 type:#boolean default:false ui:cbEnableSlot_5
|
|
bEnableSlot_6 type:#boolean default:false ui:cbEnableSlot_6
|
|
bEnableSlot_7 type:#boolean default:false ui:cbEnableSlot_7
|
|
bEnableSlot_8 type:#boolean default:false ui:cbEnableSlot_8
|
|
bTexGen_1 type:#boolean default:false ui:cbTexGen_1
|
|
bTexGen_2 type:#boolean default:false ui:cbTexGen_2
|
|
bTexGen_3 type:#boolean default:false ui:cbTexGen_3
|
|
bTexGen_4 type:#boolean default:false ui:cbTexGen_4
|
|
bTexGen_5 type:#boolean default:false ui:cbTexGen_5
|
|
bTexGen_6 type:#boolean default:false ui:cbTexGen_6
|
|
bTexGen_7 type:#boolean default:false ui:cbTexGen_7
|
|
bTexGen_8 type:#boolean default:false ui:cbTexGen_8
|
|
tTexture_1 type:#texturemap ui:mbTexture_1
|
|
tTexture_2 type:#texturemap ui:mbTexture_2
|
|
tTexture_3 type:#texturemap ui:mbTexture_3
|
|
tTexture_4 type:#texturemap ui:mbTexture_4
|
|
tTexture_5 type:#texturemap ui:mbTexture_5
|
|
tTexture_6 type:#texturemap ui:mbTexture_6
|
|
tTexture_7 type:#texturemap ui:mbTexture_7
|
|
tTexture_8 type:#texturemap ui:mbTexture_8
|
|
)
|
|
|
|
parameters slot1 rollout:NelMultitextureSlot1
|
|
(
|
|
-- New in version 4
|
|
cConstant_1 type:#color default:[255,255,255] ui:cpConstant
|
|
iRgbOperation_1 type:#integer default:1
|
|
iRgbBlendSource_1 type:#integer default:1
|
|
iRgbArg0_1 type:#integer default:1
|
|
iRgbArg1_1 type:#integer default:1
|
|
iRgbArg2_1 type:#integer default:1
|
|
iRgbArg0Operand_1 type:#integer default:1
|
|
iRgbArg1Operand_1 type:#integer default:1
|
|
iRgbArg2Operand_1 type:#integer default:1
|
|
iAlphaOperation_1 type:#integer default:1
|
|
iAlphaBlendSource_1 type:#integer default:1
|
|
iAlphaArg0_1 type:#integer default:1
|
|
iAlphaArg1_1 type:#integer default:1
|
|
iAlphaArg2_1 type:#integer default:1
|
|
iAlphaArg0Operand_1 type:#integer default:3
|
|
iAlphaArg1Operand_1 type:#integer default:3
|
|
iAlphaArg2Operand_1 type:#integer default:3
|
|
iTextureShader_1 type:#integer default:1
|
|
iConstantAlpha_1 type:#integer default:255 ui:sdConstantAlpha
|
|
)
|
|
|
|
parameters slot2 rollout:NelMultitextureSlot2
|
|
(
|
|
-- New in version 4
|
|
cConstant_2 type:#color default:[255,255,255] ui:cpConstant
|
|
iRgbOperation_2 type:#integer default:1
|
|
iRgbBlendSource_2 type:#integer default:1
|
|
iRgbArg0_2 type:#integer default:1
|
|
iRgbArg1_2 type:#integer default:1
|
|
iRgbArg2_2 type:#integer default:1
|
|
iRgbArg0Operand_2 type:#integer default:1
|
|
iRgbArg1Operand_2 type:#integer default:1
|
|
iRgbArg2Operand_2 type:#integer default:1
|
|
iAlphaOperation_2 type:#integer default:1
|
|
iAlphaBlendSource_2 type:#integer default:1
|
|
iAlphaArg0_2 type:#integer default:1
|
|
iAlphaArg1_2 type:#integer default:1
|
|
iAlphaArg2_2 type:#integer default:1
|
|
iAlphaArg0Operand_2 type:#integer default:3
|
|
iAlphaArg1Operand_2 type:#integer default:3
|
|
iAlphaArg2Operand_2 type:#integer default:3
|
|
iTextureShader_2 type:#integer default:1
|
|
iConstantAlpha_2 type:#integer default:255 ui:sdConstantAlpha
|
|
)
|
|
|
|
parameters slot3 rollout:NelMultitextureSlot3
|
|
(
|
|
-- New in version 7
|
|
cConstant_3 type:#color default:[255,255,255] ui:cpConstant
|
|
iRgbOperation_3 type:#integer default:1
|
|
iRgbBlendSource_3 type:#integer default:1
|
|
iRgbArg0_3 type:#integer default:1
|
|
iRgbArg1_3 type:#integer default:1
|
|
iRgbArg2_3 type:#integer default:1
|
|
iRgbArg0Operand_3 type:#integer default:1
|
|
iRgbArg1Operand_3 type:#integer default:1
|
|
iRgbArg2Operand_3 type:#integer default:1
|
|
iAlphaOperation_3 type:#integer default:1
|
|
iAlphaBlendSource_3 type:#integer default:1
|
|
iAlphaArg0_3 type:#integer default:1
|
|
iAlphaArg1_3 type:#integer default:1
|
|
iAlphaArg2_3 type:#integer default:1
|
|
iAlphaArg0Operand_3 type:#integer default:3
|
|
iAlphaArg1Operand_3 type:#integer default:3
|
|
iAlphaArg2Operand_3 type:#integer default:3
|
|
iTextureShader_3 type:#integer default:1
|
|
iConstantAlpha_3 type:#integer default:255 ui:sdConstantAlpha
|
|
)
|
|
|
|
parameters slot4 rollout:NelMultitextureSlot4
|
|
(
|
|
-- New in version 7
|
|
cConstant_4 type:#color default:[255,255,255] ui:cpConstant
|
|
iRgbOperation_4 type:#integer default:1
|
|
iRgbBlendSource_4 type:#integer default:1
|
|
iRgbArg0_4 type:#integer default:1
|
|
iRgbArg1_4 type:#integer default:1
|
|
iRgbArg2_4 type:#integer default:1
|
|
iRgbArg0Operand_4 type:#integer default:1
|
|
iRgbArg1Operand_4 type:#integer default:1
|
|
iRgbArg2Operand_4 type:#integer default:1
|
|
iAlphaOperation_4 type:#integer default:1
|
|
iAlphaBlendSource_4 type:#integer default:1
|
|
iAlphaArg0_4 type:#integer default:1
|
|
iAlphaArg1_4 type:#integer default:1
|
|
iAlphaArg2_4 type:#integer default:1
|
|
iAlphaArg0Operand_4 type:#integer default:3
|
|
iAlphaArg1Operand_4 type:#integer default:3
|
|
iAlphaArg2Operand_4 type:#integer default:3
|
|
iTextureShader_4 type:#integer default:1
|
|
iConstantAlpha_4 type:#integer default:255 ui:sdConstantAlpha
|
|
)
|
|
|
|
parameters slot5
|
|
(
|
|
)
|
|
|
|
parameters slot6
|
|
(
|
|
)
|
|
|
|
rollout nelBasicParameters "NeL Basic Parameters" rolledUp:false
|
|
(
|
|
Label lblNlbpA "NeL Material" align:#center across:3
|
|
Label lblNlbpB "http://dev.ryzom.com/" align:#center
|
|
CheckBox cbTwoSided "2-Sided" checked:false align:#right
|
|
|
|
group "Standard Lighting"
|
|
(
|
|
-- Label lblNlbpslA "Diffuse is the color in light, ambient in the dark." align:#right
|
|
-- Label lblNlbpslB "Ambient and diffuse multiply with the textures and global sun." align:#right
|
|
ColorPicker cpAmbient "Ambient" color:[63,63,63] align:#left across:3
|
|
ColorPicker cpDiffuse "Diffuse" color:[127,127,127] align:#left
|
|
Spinner spOpacity "Opacity" range:[0,100,100] type:#integer scale:1 align:#left
|
|
)
|
|
|
|
group "Specular"
|
|
(
|
|
-- Label lblNlbpsA "Increase the specular level to see the specular color." align:#right
|
|
-- Label lblNlbpsB "Multiplies with sun. Glossiness changes the size of the specular." align:#right
|
|
ColorPicker cpSpecular "Specular" color:[255,255,255] align:#left across:3
|
|
Spinner spSpecularLevel "Level" range:[0,100,0] type:#integer scale:1 align:#left
|
|
Spinner spGlossiness "Glossiness"range:[0,80,10] type:#integer scale:1 align:#left
|
|
)
|
|
|
|
group "Self Illumination"
|
|
(
|
|
-- Label lblNlbpsiA "Set the self illumination by color or by amount." align:#right
|
|
ColorPicker cpSelfIllumColor "Self Illum"color:[0,0,0] align:#left across:3
|
|
Spinner spSelfIllumAmount "Self Illum" range:[0,100,0] type:#integer scale:1 align:#left
|
|
CheckBox cbUseSelfIllumColor "Use Color" checked:false align:#right
|
|
)
|
|
|
|
on cbTwoSided changed bval do
|
|
updateUI false
|
|
|
|
on cpAmbient changed cval do
|
|
updateUI false
|
|
|
|
on cpDiffuse changed cval do
|
|
updateUI false
|
|
|
|
on spOpacity changed pval do
|
|
updateUI false
|
|
|
|
on cpSpecular changed cval do
|
|
updateUI false
|
|
|
|
on spSpecularLevel changed pval do
|
|
updateUI false
|
|
|
|
on spGlossiness changed pval do
|
|
updateUI false
|
|
|
|
on cpSelfIllumColor changed cval do
|
|
updateUI false
|
|
|
|
on spSelfIllumAmount changed bval do
|
|
updateUI false
|
|
|
|
on cbUseSelfIllumColor changed bval do
|
|
updateUI false
|
|
|
|
Fn updateUI update =
|
|
(
|
|
if (version >= 14) then
|
|
(
|
|
if update == true then
|
|
(
|
|
cbTwoSided.checked = bTwoSided
|
|
cpAmbient.color = cAmbient
|
|
cpDiffuse.color = cDiffuse
|
|
spOpacity.value = pOpacity
|
|
cpSpecular.color = cSpecular
|
|
spSpecularLevel.value = pSpecularLevel
|
|
spGlossiness.value = pGlossiness
|
|
cpSelfIllumColor.color = cSelfIllumColor
|
|
spSelfIllumAmount.value = pSelfIllumAmount
|
|
cbUseSelfIllumColor.checked = bUseSelfIllumColor
|
|
|
|
spSelfIllumAmount.visible = not bUseSelfIllumColor
|
|
cpSelfIllumColor.visible = bUseSelfIllumColor
|
|
)
|
|
else
|
|
(
|
|
bTwoSided = cbTwoSided.checked
|
|
cAmbient = cpAmbient.color
|
|
cDiffuse = cpDiffuse.color
|
|
pOpacity = spOpacity.value
|
|
cSpecular = cpSpecular.color
|
|
pSpecularLevel = spSpecularLevel.value
|
|
pGlossiness = spGlossiness.value
|
|
cSelfIllumColor = cpSelfIllumColor.color
|
|
pSelfIllumAmount = spSelfIllumAmount.value
|
|
bUseSelfIllumColor = cbUseSelfIllumColor.checked
|
|
|
|
delegate.twoSided = bTwoSided
|
|
delegate.ambient = cAmbient
|
|
delegate.diffuse = cDiffuse
|
|
delegate.opacity = pOpacity
|
|
delegate.specular = cSpecular
|
|
delegate.specularLevel = pSpecularLevel
|
|
delegate.glossiness = pGlossiness
|
|
delegate.selfIllumColor = cSelfIllumColor
|
|
delegate.selfIllumAmount = pSelfIllumAmount
|
|
delegate.useSelfIllumColor = bUseSelfIllumColor
|
|
)
|
|
|
|
delegate.adTextureLock = false
|
|
delegate.adLock = false
|
|
delegate.dsLock = false
|
|
)
|
|
)
|
|
|
|
on nelBasicParameters open do
|
|
(
|
|
updateUI true
|
|
)
|
|
)
|
|
|
|
rollout NelParams "NeL Material" rolledUp:true
|
|
(
|
|
-- UI update timer
|
|
timer pWatch interval:450
|
|
local activeMaterial = undefined
|
|
|
|
dropdownlist dlShaderType "Shaders Type" items:#( "Normal (simple multitexture material)", "Not Implemented (do not use, bump material not implemented)",
|
|
"UserColor (display user color on texture inverse alpha)", "LightMap (material used for lightmapping)",
|
|
"Specular (material with specular reflection cubemap)", "Water (shiny water shader)",
|
|
"Per pixel lighting, require one texmap applied", "Per pixel lighting, no specular, require one texmap applied")
|
|
group "Light"
|
|
(
|
|
CheckBox cbUnlighted "Unlighted"
|
|
Label lLightMapChannel "Lightmap Texture Channel" align:#left across:2
|
|
Spinner ciLightMapChannel "" range:[0,99,0] type:#integer scale:1 align:#left width:50
|
|
CheckBox cbStainedGlassWindow "Lightmap stained glass window"
|
|
CheckBox cbColorVertex "Color Vertex"
|
|
)
|
|
group "Alpha"
|
|
(
|
|
CheckBox cbAlphaBlend "Alpha Blend"
|
|
Button btSetBlend "Setup Blend" align:#left across:3
|
|
Button btSetAdd "Setup Additive" align:#left
|
|
Button btSetAlphaAdd "Setup Alpha Additive" align:#left
|
|
dropdownlist dlBlendSrcFunc "Blend Source" items:#( "One", "Zero", "Source Alpha", "Inverse Source Alpha", "Source RGBA", "Inverse Source RGB", "Destination Alpha", "Inverse Destination Alpha", "Destination RGB", "Inverse Destination RGB" ) across:2
|
|
dropdownlist dlBlendDestFunc "Blend Destination" items:#( "One", "Zero", "Source Alpha", "Inverse Source Alpha", "Source RGBA", "Inverse Source RGB", "Destination Alpha", "Inverse Destination Alpha", "Destination RGB", "Inverse Destination RGB" )
|
|
CheckBox cbAlphaTest "Alpha Test"
|
|
CheckBox cbAlphaVertex "Alpha Vertex" across:2
|
|
Spinner ciAlphaVertexChannel "Alpha Vertex Channel" range:[0,99,0] type:#integer scale:1 align:#right
|
|
)
|
|
group "Z buffer"
|
|
(
|
|
Label cfZBiasLabel "ZBias :" align:#left across:2
|
|
Spinner cfZBias "" range:[-100,100,0] type:#float scale:0.001 align:#left width:70
|
|
CheckBox cbForceZWrite "Force ZWrite" across:2
|
|
CheckBox cbForceNoZWrite "Force No ZWrite"
|
|
)
|
|
group "Water"
|
|
(
|
|
Label lbWaterPoolID "Water pool ID" align:#left across:2
|
|
Spinner ciWaterPoolID "" range:[0,3,1] type:#integer align:#left width:70
|
|
Label lbWaterHeightFactor "Water height factor" align:#left across:2
|
|
Spinner cfWaterHeightFactor "" range:[0,1000,1] type:#integer align:#left width:70
|
|
|
|
CheckBox cbWaterUseSceneEnvMapAbove "Use scene envmap above water" across:2
|
|
CheckBox cbWaterUseSceneEnvMapUnder "under water" align:#right
|
|
|
|
Label cfBumpScaleLabel "BumpMap Scale" align:#left across:3
|
|
Spinner cfBumpUScale "U" range:[-10,10,0.01] type:#float scale:0.001 align:#right width:70
|
|
Spinner cfBumpVScale "V" range:[-10,10,0.01] type:#float scale:0.001 align:#right width:70
|
|
Label cfBumpSpeedLabel "BumpMap Speed" align:#left across:3
|
|
Spinner cfBumpUSpeed "U" range:[-10,10,0.01] type:#float scale:0.001 align:#right width:70
|
|
Spinner cfBumpVSpeed "V" range:[-10,10,0.01] type:#float scale:0.001 align:#right width:70
|
|
|
|
|
|
Label lbDisplaceMapScale "DisplaceMap Scale" align:#left across:3
|
|
Spinner cfDisplaceMapUScale "U" range:[-10,10,0.005] type:#float scale:0.001 align:#right width:70
|
|
Spinner cfDisplaceMapVScale "V" range:[-10,10,0.005] type:#float scale:0.001 align:#right width:70
|
|
Label lbDisplaceMapSpeed "DisplaceMap Speed" align:#left across:3
|
|
Spinner cfDisplaceMapUSpeed "U" range:[-10,10,0.01] type:#float scale:0.001 align:#right width:70
|
|
Spinner cfDisplaceMapVSpeed "V" range:[-10,10,0.01] type:#float scale:0.001 align:#right width:70
|
|
|
|
CheckBox cbCalcWaterLightmap "Compute water lightmap" across:2
|
|
CheckBox cbEnableWaterSplash "Enable water splash"
|
|
)
|
|
group "Extended"
|
|
(
|
|
dropdownlist dlVertexProgram "Vertex Program" items:#( "Disable" ) across:2
|
|
ColorPicker cpUserColor "User Color" color:[255,0,0] align:#right height:40
|
|
CheckBox cbExportTextureMatrix "Export texture matrix"
|
|
)
|
|
|
|
Fn updateUI update =
|
|
(
|
|
if (version >= 4) then
|
|
(
|
|
if update == true then
|
|
(
|
|
dlBlendSrcFunc.selection = iBlendSrcFunc
|
|
dlBlendDestFunc.selection = iBlendDestFunc
|
|
dlShaderType.selection = iShaderType
|
|
)
|
|
else
|
|
(
|
|
iBlendSrcFunc = dlBlendSrcFunc.selection
|
|
iBlendDestFunc = dlBlendDestFunc.selection
|
|
iShaderType = dlShaderType.selection
|
|
)
|
|
|
|
-- Setup boolean value
|
|
bNormalShader = false
|
|
bPerPixelLightingShader = false;
|
|
bUserColor = false
|
|
bLightmap = false
|
|
bSpecular = false
|
|
bWater = false
|
|
if iShaderType == ShaderNormal then
|
|
bNormalShader = true
|
|
else if iShaderType == ShaderPerPixelLighting or iShaderType == ShaderPerPixelLightingNoSpec then
|
|
bPerPixelLightingShader = true;
|
|
else if iShaderType == ShaderUserColor then
|
|
bUserColor = true
|
|
else if iShaderType == ShaderLightmap then
|
|
bLightmap = true
|
|
else if iShaderType == ShaderSpecular then
|
|
bSpecular = true
|
|
else if iShaderType == ShaderWater then
|
|
bWater = true
|
|
|
|
dlVertexProgram.enabled = (not bWater) and (not bLightmap)
|
|
|
|
cbUnlighted.enabled = (not bWater) and (not bLightmap)
|
|
lLightMapChannel.enabled = (not bWater) and bLightmap
|
|
ciLightMapChannel.enabled = (not bWater) and bLightmap
|
|
cbStainedGlassWindow.enabled = not bWater
|
|
|
|
-- Yoyo: allow alphaBlend when Lightmap is enabled, but Only std blend is possible, without alphaVertex etc...
|
|
cbAlphaBlend.enabled = (not bWater) and (not bAlphaTest)
|
|
btSetBlend.enabled = ((not bWater) and (not bLightmap)) and bAlphaBlend and (not bAlphaTest)
|
|
btSetAdd.enabled = ((not bWater) and (not bLightmap)) and bAlphaBlend and (not bAlphaTest)
|
|
btSetAlphaAdd.enabled = ((not bWater) and (not bLightmap)) and bAlphaBlend and (not bAlphaTest)
|
|
dlBlendSrcFunc.enabled = ((not bWater) and (not bLightmap)) and bAlphaBlend and (not bAlphaTest)
|
|
dlBlendDestFunc.enabled = ((not bWater) and (not bLightmap)) and bAlphaBlend and (not bAlphaTest)
|
|
cbAlphaTest.enabled = (not bWater) and (not bAlphaBlend)
|
|
|
|
-- Yoyo: allow ZWrite modif when lightmap is used
|
|
cbForceZWrite.enabled = (not bWater) and bAlphaBlend
|
|
cbForceNoZWrite.enabled = (not bWater) and (not bAlphaBlend)
|
|
cbAlphaVertex.enabled = (not bWater) and (not bLightmap) and (not bLightMap)
|
|
ciAlphaVertexChannel.enabled = (not bWater) and bAlphaVertex and (not bLightMap)
|
|
cbColorVertex.enabled = not bWater
|
|
|
|
cfBumpUScale.enabled = bWater and (not bLightMap)
|
|
cfBumpVScale.enabled = bWater and (not bLightMap)
|
|
cfBumpUSpeed.enabled = bWater and (not bLightMap)
|
|
cfBumpVSpeed.enabled = bWater and (not bLightMap)
|
|
|
|
cfDisplaceMapUScale.enabled = bWater and (not bLightMap)
|
|
cfDisplaceMapVScale.enabled = bWater and (not bLightMap)
|
|
cfDisplaceMapUSpeed.enabled = bWater and (not bLightMap)
|
|
cfDisplaceMapVSpeed.enabled = bWater and (not bLightMap)
|
|
ciWaterPoolID.enabled = bWater and (not bLightMap)
|
|
cfWaterHeightFactor.enabled = bWater and (not bLightMap)
|
|
|
|
if (bWater == true) then
|
|
(
|
|
cbUnlighted.checked = false
|
|
cbStainedGlassWindow.checked = false
|
|
cbAlphaTest.checked = false
|
|
cbForceZWrite.checked = false
|
|
cbForceNoZWrite.checked = false
|
|
)
|
|
)
|
|
)
|
|
|
|
on NelParams reload do
|
|
(
|
|
)
|
|
|
|
on NelParams open do
|
|
(
|
|
updateUI true
|
|
)
|
|
|
|
on NelParams close do
|
|
(
|
|
)
|
|
|
|
-- Update ui
|
|
|
|
on dlShaderType selected newState do
|
|
(
|
|
globalUpdateUI false
|
|
)
|
|
|
|
on cbUnlighted changed bNewState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on cbAlphaBlend changed bNewState do
|
|
(
|
|
if bAlphaBlend == true then
|
|
bAlphaTest = false
|
|
updateUI false
|
|
)
|
|
|
|
on cbAlphaTest changed bNewState do
|
|
(
|
|
if bAlphaTest == true then
|
|
bAlphaBlend = false
|
|
updateUI false
|
|
)
|
|
|
|
on cbAlphaVertex changed bNewState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on cbAlphaVertex changed bNewState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on btSetBlend pressed do
|
|
(
|
|
dlBlendSrcFunc.selection = 3
|
|
dlBlendDestFunc.selection = 4
|
|
updateUI false
|
|
)
|
|
|
|
on btSetAdd pressed do
|
|
(
|
|
dlBlendSrcFunc.selection = 1
|
|
dlBlendDestFunc.selection = 1
|
|
updateUI false
|
|
)
|
|
|
|
on btSetAlphaAdd pressed do
|
|
(
|
|
dlBlendSrcFunc.selection = 3
|
|
dlBlendDestFunc.selection = 1
|
|
updateUI false
|
|
)
|
|
|
|
on pWatch tick do
|
|
(
|
|
if (activeMaterial != this) then
|
|
(
|
|
activeMaterial = this
|
|
globalUpdateUI true
|
|
)
|
|
)
|
|
)
|
|
|
|
rollout NelTexture "NeL Textures" rolledUp:true
|
|
(
|
|
group "Textures"
|
|
(
|
|
Label lblNttA "Texture format must be TGA or DDS for ingame usage." align:#right
|
|
Label lblNttBl "Enabled" align:#left across:4
|
|
Label lblNttBcA "" align:#center
|
|
Label lblNttBcB "Texture " align:#center
|
|
Label lblNttBr "EnvMap" align:#right
|
|
CheckBox cbEnableSlot_1 "Texture 1...................." width:110 align:#left across:3
|
|
MapButton mbTexture_1 "" toolTips:"Select the texture 1" width:160 align:#left
|
|
CheckBox cbTexGen_1 "" align:#right
|
|
CheckBox cbEnableSlot_2 "Texture 2...................." width:110 align:#left across:3
|
|
MapButton mbTexture_2 "" toolTips:"Select the texture 2" width:160 align:#left
|
|
CheckBox cbTexGen_2 "" align:#right
|
|
CheckBox cbEnableSlot_3 "Texture 3...................." width:110 align:#left across:3
|
|
MapButton mbTexture_3 "" toolTips:"Select the texture 3" width:160 align:#left
|
|
CheckBox cbTexGen_3 "" align:#right
|
|
CheckBox cbEnableSlot_4 "Texture 4...................." width:110 align:#left across:3
|
|
MapButton mbTexture_4 "" toolTips:"Select the texture 4" width:160 align:#left
|
|
CheckBox cbTexGen_4 "" align:#right
|
|
CheckBox cbEnableSlot_5 "Texture 5...................." width:110 align:#left across:3
|
|
MapButton mbTexture_5 "" toolTips:"Select the texture 5" width:160 align:#left
|
|
CheckBox cbTexGen_5 "" align:#right
|
|
CheckBox cbEnableSlot_6 "Texture 6...................." width:110 align:#left across:3
|
|
MapButton mbTexture_6 "" toolTips:"Select the texture 6" width:160 align:#left
|
|
CheckBox cbTexGen_6 "" align:#right
|
|
CheckBox cbEnableSlot_7 "Texture 7...................." width:110 align:#left across:3
|
|
MapButton mbTexture_7 "" toolTips:"Select the texture 7" width:160 align:#left
|
|
CheckBox cbTexGen_7 "" align:#right
|
|
CheckBox cbEnableSlot_8 "Texture 8...................." width:110 align:#left across:3
|
|
MapButton mbTexture_8 "" toolTips:"Select the texture 8" width:160 align:#left
|
|
CheckBox cbTexGen_8 "" align:#right
|
|
)
|
|
|
|
group "Setup Stage"
|
|
(
|
|
Label lblNtssA "Automatic configuration of the texture slots with simple material." align:#right
|
|
dropdownlist dlShader "" items:#( "Single Texture (RGBA1) (A1)", "Addition Two Textures (RGB1+RGB2) (A2)", "Multiply Two Textures (RGB1*RGB2) (A2)", "Blend Two Textures (RGB1*(1-A1)+RGB2*A1) (A2)", "Blend Texture (RGB1)(A2)", "Mix Two Textures (RGB1*0.5+RGB2*0.5) (A1*0.5+A2*0.5)" )
|
|
Button btLoadShader "Setup Texture Slots" align:#left
|
|
)
|
|
|
|
fn updateUI update =
|
|
(
|
|
if (version >= 4) then
|
|
(
|
|
cbEnableSlot_1.enabled = true
|
|
cbEnableSlot_2.enabled = (not bLightmap) and (not bPerPixelLightingShader)
|
|
cbEnableSlot_3.enabled = (not bLightmap) and (not bSpecular) and (not bUserColor) and (not bPerPixelLightingShader)
|
|
cbEnableSlot_4.enabled = (not bLightmap) and (not bSpecular) and (not bUserColor) and (not bPerPixelLightingShader)
|
|
cbEnableSlot_5.enabled = (not bLightmap) and (not bSpecular) and (not bUserColor) and (not bNormalShader) and (not bPerPixelLightingShader)
|
|
cbEnableSlot_6.enabled = (not bLightmap) and (not bSpecular) and (not bUserColor) and (not bNormalShader) and (not bPerPixelLightingShader)
|
|
cbEnableSlot_7.enabled = (not bLightmap) and (not bSpecular) and (not bUserColor) and (not bNormalShader) and (not bPerPixelLightingShader)
|
|
cbEnableSlot_8.enabled = (not bWater) and (not bLightmap) and (not bSpecular) and (not bUserColor) and (not bNormalShader) and (not bPerPixelLightingShader)
|
|
|
|
mbTexture_1.enabled = bEnableSlot_1
|
|
mbTexture_2.enabled = bEnableSlot_2 and (not bLightmap) and (not bUserColor) and (not bPerPixelLightingShader)
|
|
mbTexture_3.enabled = bEnableSlot_3 and (not bLightmap) and (not bSpecular) and (not bUserColor) and (not bPerPixelLightingShader)
|
|
mbTexture_4.enabled = bEnableSlot_4 and (not bLightmap) and (not bSpecular) and (not bUserColor) and (not bPerPixelLightingShader)
|
|
mbTexture_5.enabled = bEnableSlot_5 and (not bLightmap) and (not bSpecular) and (not bUserColor) and (not bNormalShader) and (not bPerPixelLightingShader)
|
|
mbTexture_6.enabled = bEnableSlot_6 and (not bLightmap) and (not bSpecular) and (not bUserColor) and (not bNormalShader) and (not bPerPixelLightingShader)
|
|
mbTexture_7.enabled = bEnableSlot_7 and (not bLightmap) and (not bSpecular) and (not bUserColor) and (not bNormalShader) and (not bPerPixelLightingShader)
|
|
mbTexture_8.enabled = bEnableSlot_8 and (not bWater) and (not bLightmap) and (not bSpecular) and (not bUserColor) and (not bNormalShader) and (not bPerPixelLightingShader)
|
|
|
|
cbTexGen_1.enabled = bNormalShader and bEnableSlot_1
|
|
cbTexGen_2.enabled = bNormalShader and bEnableSlot_2 and (not bLightmap) and (not bUserColor) and (not bPerPixelLightingShader)
|
|
cbTexGen_3.enabled = bNormalShader and bEnableSlot_3 and (not bLightmap) and (not bSpecular) and (not bUserColor) and (not bPerPixelLightingShader)
|
|
cbTexGen_4.enabled = bNormalShader and bEnableSlot_4 and (not bLightmap) and (not bSpecular) and (not bUserColor) and (not bPerPixelLightingShader)
|
|
cbTexGen_5.enabled = bNormalShader and bEnableSlot_5 and (not bLightmap) and (not bSpecular) and (not bUserColor) and (not bNormalShader) and (not bPerPixelLightingShader)
|
|
cbTexGen_6.enabled = bNormalShader and bEnableSlot_6 and (not bLightmap) and (not bSpecular) and (not bUserColor) and (not bNormalShader) and (not bPerPixelLightingShader)
|
|
cbTexGen_7.enabled = bNormalShader and bEnableSlot_7 and (not bLightmap) and (not bSpecular) and (not bUserColor) and (not bNormalShader) and (not bPerPixelLightingShader)
|
|
cbTexGen_8.enabled = bNormalShader and bEnableSlot_8 and (not bLightmap) and (not bSpecular) and (not bUserColor) and (not bNormalShader) and (not bPerPixelLightingShader)
|
|
|
|
btLoadShader.enabled = bNormalShader
|
|
dlShader.enabled = bNormalShader
|
|
|
|
if bWater == true then
|
|
(
|
|
cbEnableSlot_1.text = "EnvDay......................."
|
|
cbEnableSlot_2.text = "EnvNight (opt)..............."
|
|
cbEnableSlot_3.text = "EnvDayUnder (opt)............"
|
|
cbEnableSlot_4.text = "EnvNightUnder (opt).........."
|
|
cbEnableSlot_5.text = "Bump........................."
|
|
cbEnableSlot_6.text = "Displace....................."
|
|
cbEnableSlot_7.text = "ColorAlpha (opt)............."
|
|
cbEnableSlot_8.text = "Unused......................."
|
|
)
|
|
else
|
|
(
|
|
if bLightmap == true then
|
|
(
|
|
cbEnableSlot_1.text = "Diffuse......................"
|
|
cbEnableSlot_2.text = "Unused......................."
|
|
cbEnableSlot_3.text = "Unused......................."
|
|
cbEnableSlot_4.text = "Unused......................."
|
|
cbEnableSlot_5.text = "Unused......................."
|
|
cbEnableSlot_6.text = "Unused......................."
|
|
cbEnableSlot_7.text = "Unused......................."
|
|
cbEnableSlot_8.text = "Unused......................."
|
|
)
|
|
else
|
|
(
|
|
if bUserColor == true then
|
|
(
|
|
cbEnableSlot_1.text = "Diffuse......................"
|
|
cbEnableSlot_2.text = "UsercolorMask................"
|
|
cbEnableSlot_3.text = "Unused......................."
|
|
cbEnableSlot_4.text = "Unused......................."
|
|
cbEnableSlot_5.text = "Unused......................."
|
|
cbEnableSlot_6.text = "Unused......................."
|
|
cbEnableSlot_7.text = "Unused......................."
|
|
cbEnableSlot_8.text = "Unused......................."
|
|
)
|
|
else
|
|
(
|
|
if bSpecular == true then
|
|
(
|
|
cbEnableSlot_1.text = "Diffuse......................"
|
|
cbEnableSlot_2.text = "SpecularMap.................."
|
|
cbEnableSlot_3.text = "Unused......................."
|
|
cbEnableSlot_4.text = "Unused......................."
|
|
cbEnableSlot_5.text = "Unused......................."
|
|
cbEnableSlot_6.text = "Unused......................."
|
|
cbEnableSlot_7.text = "Unused......................."
|
|
cbEnableSlot_8.text = "Unused......................."
|
|
)
|
|
else
|
|
(
|
|
cbEnableSlot_1.text = "Texture 1...................."
|
|
cbEnableSlot_2.text = "Texture 2...................."
|
|
cbEnableSlot_3.text = "Texture 3...................."
|
|
cbEnableSlot_4.text = "Texture 4...................."
|
|
cbEnableSlot_5.text = "Texture 5...................."
|
|
cbEnableSlot_6.text = "Texture 6...................."
|
|
cbEnableSlot_7.text = "Texture 7...................."
|
|
cbEnableSlot_8.text = "Texture 8...................."
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
if (update == true) then
|
|
(
|
|
dlShader.selection = iShader
|
|
)
|
|
else
|
|
(
|
|
iShader = dlShader.selection
|
|
)
|
|
|
|
-- Update texture name
|
|
updateTextureName ()
|
|
)
|
|
)
|
|
|
|
on NelTexture open do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on NelTexture close do
|
|
(
|
|
)
|
|
|
|
on cbEnableSlot_1 changed newState do
|
|
(
|
|
globalUpdateUI false
|
|
)
|
|
|
|
on cbEnableSlot_2 changed newState do
|
|
(
|
|
globalUpdateUI false
|
|
)
|
|
|
|
on cbEnableSlot_3 changed newState do
|
|
(
|
|
globalUpdateUI false
|
|
)
|
|
|
|
on cbEnableSlot_4 changed newState do
|
|
(
|
|
globalUpdateUI false
|
|
)
|
|
|
|
on cbEnableSlot_5 changed newState do
|
|
(
|
|
globalUpdateUI false
|
|
)
|
|
|
|
on cbEnableSlot_6 changed newState do
|
|
(
|
|
globalUpdateUI false
|
|
)
|
|
|
|
on cbEnableSlot_7 changed newState do
|
|
(
|
|
globalUpdateUI false
|
|
)
|
|
|
|
on cbEnableSlot_8 changed newState do
|
|
(
|
|
globalUpdateUI false
|
|
)
|
|
|
|
on dlShader selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on btLoadShader pressed do
|
|
(
|
|
loadShader dlShader.selection
|
|
)
|
|
)
|
|
|
|
rollout NelMultitextureSlot1 "NeL Slot 1" rolledUp:true
|
|
(
|
|
group "RGB"
|
|
(
|
|
dropdownlist dlRgbOperation "Operation" items:#( "Arg0", "Arg0*Arg1", "Arg0+Arg1", "Arg0+Arg1-0.5", "Alpha Blend", "Arg0*Arg1+Arg2" ) across:2
|
|
dropdownlist dlRgbBlendSource "Blend Source" items:#( "Texture", "Previous", "Diffuse", "Constant" )
|
|
dropdownlist dlRgbArg0 "Arg0" items:#( "Texture", "Previous", "Diffuse", "Constant" ) across:6
|
|
dropdownlist dlRgbArg0Operand "Oper0" items:#( "RGB", "Inv RGB", "Alpha", "Inv Alpha" )
|
|
dropdownlist dlRgbArg1 "Arg1" items:#( "Previous", "Diffuse", "Constant", "Texture" )
|
|
dropdownlist dlRgbArg1Operand "Oper1 Operand" items:#( "RGB", "Inv RGB", "Alpha", "Inv Alpha" )
|
|
dropdownlist dlRgbArg2 "Arg2" items:#( "Previous", "Diffuse", "Constant", "Texture" )
|
|
dropdownlist dlRgbArg2Operand "Oper2" items:#( "RGB", "Inv RGB", "Alpha", "Inv Alpha" )
|
|
)
|
|
group "Alpha"
|
|
(
|
|
dropdownlist dlAlphaOperation "Operation" items:#( "Arg0", "Arg0*Arg1", "Arg0+Arg1", "Arg0+Arg1-0.5", "Alpha Blend", "Arg0*Arg1+Arg2" ) across:2
|
|
dropdownlist dlAlphaBlendSource "Blend Source" items:#( "Texture", "Previous", "Diffuse", "Constant" )
|
|
dropdownlist dlAlphaArg0 "Arg0" items:#( "Texture", "Previous", "Diffuse", "Constant", "Texture" ) across:6
|
|
dropdownlist dlAlphaArg0Operand "Oper0" items:#( "RGB", "Inv RGB", "Alpha", "Inv Alpha" )
|
|
dropdownlist dlAlphaArg1 "Arg1" items:#( "Previous", "Diffuse", "Constant", "Texture" )
|
|
dropdownlist dlAlphaArg1Operand "Oper1" items:#( "RGB", "Inv RGB", "Alpha", "Inv Alpha" )
|
|
dropdownlist dlAlphaArg2 "Arg2" items:#( "Previous", "Diffuse", "Constant", "Texture" )
|
|
dropdownlist dlAlphaArg2Operand "Oper2" items:#( "RGB", "Inv RGB", "Alpha", "Inv Alpha" )
|
|
)
|
|
group "Extended"
|
|
(
|
|
dropdownlist dlTextureShader "Texture Shader" items:#( "Disable", "TextureOff", "FetchTexture", "PassThrough", "CullFragment", "OffsetTexture", "OffsetTextureScale", "DependentARTexture", "DependentGBTexture", "DP3", "DP3Texture2D", "DP3CubeMap", "DP3ReflectCubeMap", "DP3ConstEyeReflectCubeMap", "DP3DiffuseCubeMap", "DP3DepthReplace" ) width:100 across:2
|
|
ColorPicker cpConstant "Constant Color" align:#right height:40
|
|
Label ldConstantAlpha "Constant Alpha" align:#left across:2
|
|
Spinner sdConstantAlpha "" range:[0,255,255] type:#integer scale:1 align:#left width:50
|
|
)
|
|
|
|
fn updateUI update =
|
|
(
|
|
if (version >= 4) then
|
|
(
|
|
-- update droplist
|
|
if update == true then
|
|
(
|
|
dlRgbOperation.selection = iRgbOperation_1
|
|
dlRgbBlendSource.selection = iRgbBlendSource_1
|
|
dlRgbArg0.selection = iRgbArg0_1
|
|
dlRgbArg1.selection = iRgbArg1_1
|
|
dlRgbArg2.selection = iRgbArg2_1
|
|
dlRgbArg0Operand.selection = iRgbArg0Operand_1
|
|
dlRgbArg1Operand.selection = iRgbArg1Operand_1
|
|
dlRgbArg2Operand.selection = iRgbArg2Operand_1
|
|
dlAlphaOperation.selection = iAlphaOperation_1
|
|
dlAlphaBlendSource.selection = iAlphaBlendSource_1
|
|
dlAlphaArg0.selection = iAlphaArg0_1
|
|
dlAlphaArg1.selection = iAlphaArg1_1
|
|
dlAlphaArg2.selection = iAlphaArg2_1
|
|
dlAlphaArg0Operand.selection = iAlphaArg0Operand_1
|
|
dlAlphaArg1Operand.selection = iAlphaArg1Operand_1
|
|
dlAlphaArg2Operand.selection = iAlphaArg2Operand_1
|
|
dlTextureShader.selection = iTextureShader_1
|
|
)
|
|
else
|
|
(
|
|
iRgbOperation_1 = dlRgbOperation.selection
|
|
iRgbBlendSource_1 = dlRgbBlendSource.selection
|
|
iRgbArg0_1 = dlRgbArg0.selection
|
|
iRgbArg1_1 = dlRgbArg1.selection
|
|
iRgbArg2_1 = dlRgbArg2.selection
|
|
iRgbArg0Operand_1 = dlRgbArg0Operand.selection
|
|
iRgbArg1Operand_1 = dlRgbArg1Operand.selection
|
|
iRgbArg2Operand_1 = dlRgbArg2Operand.selection
|
|
iAlphaOperation_1 = dlAlphaOperation.selection
|
|
iAlphaBlendSource_1 = dlAlphaBlendSource.selection
|
|
iAlphaArg0_1 = dlAlphaArg0.selection
|
|
iAlphaArg1_1 = dlAlphaArg1.selection
|
|
iAlphaArg2_1 = dlAlphaArg2.selection
|
|
iAlphaArg0Operand_1 = dlAlphaArg0Operand.selection
|
|
iAlphaArg1Operand_1 = dlAlphaArg1Operand.selection
|
|
iAlphaArg2Operand_1 = dlAlphaArg2Operand.selection
|
|
iTextureShader_1 = dlTextureShader.selection
|
|
)
|
|
|
|
cpConstant.enabled = bEnableSlot_1 and bNormalShader
|
|
dlRgbOperation.enabled = bEnableSlot_1 and bNormalShader
|
|
dlRgbBlendSource.enabled = (bEnableSlot_1 == true) and (iRgbOperation_1 == 5) and bNormalShader
|
|
dlRgbArg0.enabled = bEnableSlot_1 and bNormalShader
|
|
dlRgbArg1.enabled = bEnableSlot_1 and bNormalShader
|
|
dlRgbArg2.enabled = bEnableSlot_1 and bNormalShader and (iRgbOperation_1 == 6)
|
|
dlRgbArg0Operand.enabled = bEnableSlot_1 and bNormalShader
|
|
dlRgbArg1Operand.enabled = bEnableSlot_1 and bNormalShader
|
|
dlRgbArg2Operand.enabled = dlRgbArg2.enabled
|
|
dlAlphaOperation.enabled = bEnableSlot_1 and bNormalShader
|
|
dlAlphaBlendSource.enabled = (bEnableSlot_1 == true) and (iAlphaOperation_1 == 5) and bNormalShader
|
|
dlAlphaArg0.enabled = bEnableSlot_1 and bNormalShader
|
|
dlAlphaArg1.enabled = bEnableSlot_1 and bNormalShader
|
|
dlAlphaArg2.enabled = bEnableSlot_1 and bNormalShader and (iAlphaOperation_1 == 6)
|
|
dlAlphaArg0Operand.enabled = bEnableSlot_1 and bNormalShader
|
|
dlAlphaArg1Operand.enabled = bEnableSlot_1 and bNormalShader
|
|
dlAlphaArg2Operand.enabled = dlAlphaArg2.enabled
|
|
dlTextureShader.enabled = bEnableSlot_1 and bNormalShader
|
|
sdConstantAlpha.enabled = bEnableSlot_1 and bNormalShader
|
|
)
|
|
)
|
|
|
|
on NelMultitextureSlot1 open do
|
|
(
|
|
updateUI true
|
|
)
|
|
|
|
on dlRgbOperation selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaOperation selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbArg0Operand selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbArg1Operand selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbArg2Operand selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaArg0Operand selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaArg1Operand selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaArg2Operand selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlMappingCoordinates selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlTextureShader selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbBlendSource selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbArg0 selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbArg1 selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbArg2 selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaBlendSource selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaArg0 selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaArg1 selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaArg2 selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
)
|
|
|
|
rollout NelMultitextureSlot2 "NeL Slot 2" rolledUp:true
|
|
(
|
|
group "RGB"
|
|
(
|
|
dropdownlist dlRgbOperation "Operation" items:#( "Arg0", "Arg0*Arg1", "Arg0+Arg1", "Arg0+Arg1-0.5", "Alpha Blend", "Arg0*Arg1+Arg2" ) across:2
|
|
dropdownlist dlRgbBlendSource "Blend Source" items:#( "Texture", "Previous", "Diffuse", "Constant" )
|
|
dropdownlist dlRgbArg0 "Arg0" items:#( "Texture", "Previous", "Diffuse", "Constant", "Texture" ) across:6
|
|
dropdownlist dlRgbArg0Operand "Oper0" items:#( "RGB", "Inv RGB", "Alpha", "Inv Alpha" )
|
|
dropdownlist dlRgbArg1 "Arg1" items:#( "Previous", "Diffuse", "Constant", "Texture" )
|
|
dropdownlist dlRgbArg1Operand "Oper1" items:#( "RGB", "Inv RGB", "Alpha", "Inv Alpha" )
|
|
dropdownlist dlRgbArg2 "Arg2" items:#( "Previous", "Diffuse", "Constant", "Texture" )
|
|
dropdownlist dlRgbArg2Operand "Oper2" items:#( "RGB", "Inv RGB", "Alpha", "Inv Alpha" )
|
|
)
|
|
group "Alpha"
|
|
(
|
|
dropdownlist dlAlphaOperation "Operation" items:#( "Arg0", "Arg0*Arg1", "Arg0+Arg1", "Arg0+Arg1-0.5", "Alpha Blend", "Arg0*Arg1+Arg2" ) across:2
|
|
dropdownlist dlAlphaBlendSource "Blend Source" items:#( "Texture", "Previous", "Diffuse", "Constant" )
|
|
dropdownlist dlAlphaArg0 "Arg0" items:#( "Texture", "Previous", "Diffuse", "Constant" ) across:6
|
|
dropdownlist dlAlphaArg0Operand "Oper0" items:#( "RGB", "Inv RGB", "Alpha", "Inv Alpha" )
|
|
dropdownlist dlAlphaArg1 "Arg1" items:#( "Previous", "Diffuse", "Constant", "Texture" )
|
|
dropdownlist dlAlphaArg1Operand "Oper1" items:#( "RGB", "Inv RGB", "Alpha", "Inv Alpha" )
|
|
dropdownlist dlAlphaArg2 "Arg2" items:#( "Previous", "Diffuse", "Constant", "Texture" )
|
|
dropdownlist dlAlphaArg2Operand "Oper2" items:#( "RGB", "Inv RGB", "Alpha", "Inv Alpha" )
|
|
)
|
|
group "Extended"
|
|
(
|
|
dropdownlist dlTextureShader "Texture Shader" items:#( "Disable", "TextureOff", "FetchTexture", "PassThrough", "CullFragment", "OffsetTexture", "OffsetTextureScale", "DependentARTexture", "DependentGBTexture", "DP3", "DP3Texture2D", "DP3CubeMap", "DP3ReflectCubeMap", "DP3ConstEyeReflectCubeMap", "DP3DiffuseCubeMap", "DP3DepthReplace" ) width:100 across:2
|
|
ColorPicker cpConstant "Constant Color" align:#right height:40
|
|
Label ldConstantAlpha "Constant Alpha" align:#left across:2
|
|
Spinner sdConstantAlpha "" range:[0,255,255] type:#integer scale:1 align:#left width:50
|
|
)
|
|
|
|
fn updateUI update =
|
|
(
|
|
if (version >= 4) then
|
|
(
|
|
-- update droplist
|
|
if update == true then
|
|
(
|
|
dlRgbOperation.selection = iRgbOperation_2
|
|
dlRgbBlendSource.selection = iRgbBlendSource_2
|
|
dlRgbArg0.selection = iRgbArg0_2
|
|
dlRgbArg1.selection = iRgbArg1_2
|
|
dlRgbArg2.selection = iRgbArg2_2
|
|
dlRgbArg0Operand.selection = iRgbArg0Operand_2
|
|
dlRgbArg1Operand.selection = iRgbArg1Operand_2
|
|
dlRgbArg2Operand.selection = iRgbArg2Operand_2
|
|
dlAlphaOperation.selection = iAlphaOperation_2
|
|
dlAlphaBlendSource.selection = iAlphaBlendSource_2
|
|
dlAlphaArg0.selection = iAlphaArg0_2
|
|
dlAlphaArg1.selection = iAlphaArg1_2
|
|
dlAlphaArg2.selection = iAlphaArg2_2
|
|
dlAlphaArg0Operand.selection = iAlphaArg0Operand_2
|
|
dlAlphaArg1Operand.selection = iAlphaArg1Operand_2
|
|
dlAlphaArg2Operand.selection = iAlphaArg2Operand_2
|
|
dlTextureShader.selection = iTextureShader_2
|
|
)
|
|
else
|
|
(
|
|
iRgbOperation_2 = dlRgbOperation.selection
|
|
iRgbBlendSource_2 = dlRgbBlendSource.selection
|
|
iRgbArg0_2 = dlRgbArg0.selection
|
|
iRgbArg1_2 = dlRgbArg1.selection
|
|
iRgbArg2_2 = dlRgbArg2.selection
|
|
iRgbArg0Operand_2 = dlRgbArg0Operand.selection
|
|
iRgbArg1Operand_2 = dlRgbArg1Operand.selection
|
|
iRgbArg2Operand_2 = dlRgbArg2Operand.selection
|
|
iAlphaOperation_2 = dlAlphaOperation.selection
|
|
iAlphaBlendSource_2 = dlAlphaBlendSource.selection
|
|
iAlphaArg0_2 = dlAlphaArg0.selection
|
|
iAlphaArg1_2 = dlAlphaArg1.selection
|
|
iAlphaArg2_2 = dlAlphaArg2.selection
|
|
iAlphaArg0Operand_2 = dlAlphaArg0Operand.selection
|
|
iAlphaArg1Operand_2 = dlAlphaArg1Operand.selection
|
|
iAlphaArg2Operand_2 = dlAlphaArg2Operand.selection
|
|
iTextureShader_2 = dlTextureShader.selection
|
|
)
|
|
|
|
cpConstant.enabled = bEnableSlot_2 and bNormalShader
|
|
dlRgbOperation.enabled = bEnableSlot_2 and bNormalShader
|
|
dlRgbBlendSource.enabled = (bEnableSlot_2 == true) and (iRgbOperation_2 == 5) and bNormalShader
|
|
dlRgbArg0.enabled = bEnableSlot_2 and bNormalShader
|
|
dlRgbArg1.enabled = bEnableSlot_2 and bNormalShader
|
|
dlRgbArg2.enabled = bEnableSlot_2 and bNormalShader and (iRgbOperation_2 == 6)
|
|
dlRgbArg0Operand.enabled = bEnableSlot_2 and bNormalShader
|
|
dlRgbArg1Operand.enabled = bEnableSlot_2 and bNormalShader
|
|
dlRgbArg2Operand.enabled = dlRgbArg2.enabled
|
|
dlAlphaOperation.enabled = bEnableSlot_2 and bNormalShader
|
|
dlAlphaBlendSource.enabled = (bEnableSlot_2 == true) and (iAlphaOperation_2 == 5) and bNormalShader
|
|
dlAlphaArg0.enabled = bEnableSlot_2 and bNormalShader
|
|
dlAlphaArg1.enabled = bEnableSlot_2 and bNormalShader
|
|
dlAlphaArg2.enabled = bEnableSlot_2 and bNormalShader and (iAlphaOperation_2 == 6)
|
|
dlAlphaArg0Operand.enabled = bEnableSlot_2 and bNormalShader
|
|
dlAlphaArg1Operand.enabled = bEnableSlot_2 and bNormalShader
|
|
dlAlphaArg2Operand.enabled = dlAlphaArg2.enabled
|
|
dlTextureShader.enabled = bEnableSlot_2 and bNormalShader
|
|
sdConstantAlpha.enabled = bEnableSlot_2 and bNormalShader
|
|
)
|
|
)
|
|
|
|
on NelMultitextureSlot2 open do
|
|
(
|
|
updateUI true
|
|
)
|
|
|
|
on dlRgbOperation selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaOperation selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbArg0Operand selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbArg1Operand selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbArg2Operand selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaArg0Operand selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaArg1Operand selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaArg2Operand selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlMappingCoordinates selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlTextureShader selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbBlendSource selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbArg0 selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbArg1 selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbArg2 selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaBlendSource selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaArg0 selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaArg1 selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaArg2 selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
)
|
|
|
|
rollout NelMultitextureSlot3 "NeL Slot 3" rolledUp:true
|
|
(
|
|
group "RGB"
|
|
(
|
|
dropdownlist dlRgbOperation "Operation" items:#( "Arg0", "Arg0*Arg1", "Arg0+Arg1", "Arg0+Arg1-0.5", "Alpha Blend", "Arg0*Arg1+Arg2" ) across:2
|
|
dropdownlist dlRgbBlendSource "Blend Source" items:#( "Texture", "Previous", "Diffuse", "Constant" )
|
|
dropdownlist dlRgbArg0 "Arg0" items:#( "Texture", "Previous", "Diffuse", "Constant" ) across:6
|
|
dropdownlist dlRgbArg0Operand "Oper0" items:#( "RGB", "Inv RGB", "Alpha", "Inv Alpha" )
|
|
dropdownlist dlRgbArg1 "Arg1" items:#( "Previous", "Diffuse", "Constant", "Texture" )
|
|
dropdownlist dlRgbArg1Operand "Oper1" items:#( "RGB", "Inv RGB", "Alpha", "Inv Alpha" )
|
|
dropdownlist dlRgbArg2 "Arg2" items:#( "Previous", "Diffuse", "Constant", "Texture" )
|
|
dropdownlist dlRgbArg2Operand "Oper2" items:#( "RGB", "Inv RGB", "Alpha", "Inv Alpha" )
|
|
)
|
|
group "Alpha"
|
|
(
|
|
dropdownlist dlAlphaOperation "Operation" items:#( "Arg0", "Arg0*Arg1", "Arg0+Arg1", "Arg0+Arg1-0.5", "Alpha Blend", "Arg0*Arg1+Arg2" ) across:2
|
|
dropdownlist dlAlphaBlendSource "Blend Source" items:#( "Texture", "Previous", "Diffuse", "Constant" )
|
|
dropdownlist dlAlphaArg0 "Arg0" items:#( "Texture", "Previous", "Diffuse", "Constant", "Texture" ) across:6
|
|
dropdownlist dlAlphaArg0Operand "Oper0" items:#( "RGB", "Inv RGB", "Alpha", "Inv Alpha" )
|
|
dropdownlist dlAlphaArg1 "Arg1" items:#( "Previous", "Diffuse", "Constant", "Texture" )
|
|
dropdownlist dlAlphaArg1Operand "Oper1" items:#( "RGB", "Inv RGB", "Alpha", "Inv Alpha" )
|
|
dropdownlist dlAlphaArg2 "Arg2" items:#( "Previous", "Diffuse", "Constant", "Texture" )
|
|
dropdownlist dlAlphaArg2Operand "Oper2" items:#( "RGB", "Inv RGB", "Alpha", "Inv Alpha" )
|
|
)
|
|
group "Extended"
|
|
(
|
|
dropdownlist dlTextureShader "Texture Shader" items:#( "Disable", "TextureOff", "FetchTexture", "PassThrough", "CullFragment", "OffsetTexture", "OffsetTextureScale", "DependentARTexture", "DependentGBTexture", "DP3", "DP3Texture2D", "DP3CubeMap", "DP3ReflectCubeMap", "DP3ConstEyeReflectCubeMap", "DP3DiffuseCubeMap", "DP3DepthReplace" ) width:100 across:2
|
|
ColorPicker cpConstant "Constant Color" align:#right height:40
|
|
Label ldConstantAlpha "Constant Alpha" align:#left across:2
|
|
Spinner sdConstantAlpha "" range:[0,255,255] type:#integer scale:1 align:#left width:50
|
|
)
|
|
|
|
fn updateUI update =
|
|
(
|
|
if (version >= 4) then
|
|
(
|
|
-- update droplist
|
|
if update == true then
|
|
(
|
|
dlRgbOperation.selection = iRgbOperation_3
|
|
dlRgbBlendSource.selection = iRgbBlendSource_3
|
|
dlRgbArg0.selection = iRgbArg0_3
|
|
dlRgbArg1.selection = iRgbArg1_3
|
|
dlRgbArg2.selection = iRgbArg2_3
|
|
dlRgbArg0Operand.selection = iRgbArg0Operand_3
|
|
dlRgbArg1Operand.selection = iRgbArg1Operand_3
|
|
dlRgbArg2Operand.selection = iRgbArg2Operand_3
|
|
dlAlphaOperation.selection = iAlphaOperation_3
|
|
dlAlphaBlendSource.selection = iAlphaBlendSource_3
|
|
dlAlphaArg0.selection = iAlphaArg0_3
|
|
dlAlphaArg1.selection = iAlphaArg1_3
|
|
dlAlphaArg2.selection = iAlphaArg2_3
|
|
dlAlphaArg0Operand.selection = iAlphaArg0Operand_3
|
|
dlAlphaArg1Operand.selection = iAlphaArg1Operand_3
|
|
dlAlphaArg2Operand.selection = iAlphaArg2Operand_3
|
|
dlTextureShader.selection = iTextureShader_3
|
|
)
|
|
else
|
|
(
|
|
iRgbOperation_3 = dlRgbOperation.selection
|
|
iRgbBlendSource_3 = dlRgbBlendSource.selection
|
|
iRgbArg0_3 = dlRgbArg0.selection
|
|
iRgbArg1_3 = dlRgbArg1.selection
|
|
iRgbArg2_3 = dlRgbArg2.selection
|
|
iRgbArg0Operand_3 = dlRgbArg0Operand.selection
|
|
iRgbArg1Operand_3 = dlRgbArg1Operand.selection
|
|
iRgbArg2Operand_3 = dlRgbArg2Operand.selection
|
|
iAlphaOperation_3 = dlAlphaOperation.selection
|
|
iAlphaBlendSource_3 = dlAlphaBlendSource.selection
|
|
iAlphaArg0_3 = dlAlphaArg0.selection
|
|
iAlphaArg1_3 = dlAlphaArg1.selection
|
|
iAlphaArg2_3 = dlAlphaArg2.selection
|
|
iAlphaArg0Operand_3 = dlAlphaArg0Operand.selection
|
|
iAlphaArg1Operand_3 = dlAlphaArg1Operand.selection
|
|
iAlphaArg2Operand_3 = dlAlphaArg2Operand.selection
|
|
iTextureShader_3 = dlTextureShader.selection
|
|
)
|
|
|
|
cpConstant.enabled = bEnableSlot_3 and bNormalShader
|
|
dlRgbOperation.enabled = bEnableSlot_3 and bNormalShader
|
|
dlRgbBlendSource.enabled = (bEnableSlot_3 == true) and (iRgbOperation_3 == 5) and bNormalShader
|
|
dlRgbArg0.enabled = bEnableSlot_3 and bNormalShader
|
|
dlRgbArg1.enabled = bEnableSlot_3 and bNormalShader
|
|
dlRgbArg2.enabled = bEnableSlot_3 and bNormalShader and (iRgbOperation_3 == 6)
|
|
dlRgbArg0Operand.enabled = bEnableSlot_3 and bNormalShader
|
|
dlRgbArg1Operand.enabled = bEnableSlot_3 and bNormalShader
|
|
dlRgbArg2Operand.enabled = dlRgbArg2.enabled
|
|
dlAlphaOperation.enabled = bEnableSlot_3 and bNormalShader
|
|
dlAlphaBlendSource.enabled = (bEnableSlot_3 == true) and (iAlphaOperation_3 == 5) and bNormalShader
|
|
dlAlphaArg0.enabled = bEnableSlot_3 and bNormalShader
|
|
dlAlphaArg1.enabled = bEnableSlot_3 and bNormalShader
|
|
dlAlphaArg2.enabled = bEnableSlot_3 and bNormalShader and (iAlphaOperation_3 == 6)
|
|
dlAlphaArg0Operand.enabled = bEnableSlot_3 and bNormalShader
|
|
dlAlphaArg1Operand.enabled = bEnableSlot_3 and bNormalShader
|
|
dlAlphaArg2Operand.enabled = dlAlphaArg2.enabled
|
|
dlTextureShader.enabled = bEnableSlot_3 and bNormalShader
|
|
sdConstantAlpha.enabled = bEnableSlot_3 and bNormalShader
|
|
)
|
|
)
|
|
|
|
on NelMultitextureSlot3 open do
|
|
(
|
|
updateUI true
|
|
)
|
|
|
|
on dlRgbOperation selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaOperation selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbArg0Operand selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbArg1Operand selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbArg2Operand selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaArg0Operand selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaArg1Operand selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaArg2Operand selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlMappingCoordinates selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlTextureShader selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbBlendSource selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbArg0 selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbArg1 selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbArg2 selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaBlendSource selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaArg0 selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaArg1 selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaArg2 selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
)
|
|
|
|
rollout NelMultitextureSlot4 "NeL Slot 4" rolledUp:true
|
|
(
|
|
group "RGB"
|
|
(
|
|
dropdownlist dlRgbOperation "Operation" items:#( "Arg0", "Arg0*Arg1", "Arg0+Arg1", "Arg0+Arg1-0.5", "Alpha Blend", "Arg0*Arg1+Arg2" ) across:2
|
|
dropdownlist dlRgbBlendSource "Blend Source" items:#( "Texture", "Previous", "Diffuse", "Constant" )
|
|
dropdownlist dlRgbArg0 "Arg0" items:#( "Texture", "Previous", "Diffuse", "Constant", "Texture" ) across:6
|
|
dropdownlist dlRgbArg0Operand "Oper0" items:#( "RGB", "Inv RGB", "Alpha", "Inv Alpha" )
|
|
dropdownlist dlRgbArg1 "Arg1" items:#( "Previous", "Diffuse", "Constant", "Texture" )
|
|
dropdownlist dlRgbArg1Operand "Oper1" items:#( "RGB", "Inv RGB", "Alpha", "Inv Alpha" )
|
|
dropdownlist dlRgbArg2 "Arg2" items:#( "Previous", "Diffuse", "Constant", "Texture" )
|
|
dropdownlist dlRgbArg2Operand "Oper2" items:#( "RGB", "Inv RGB", "Alpha", "Inv Alpha" )
|
|
)
|
|
group "Alpha"
|
|
(
|
|
dropdownlist dlAlphaOperation "Operation" items:#( "Arg0", "Arg0*Arg1", "Arg0+Arg1", "Arg0+Arg1-0.5", "Alpha Blend", "Arg0*Arg1+Arg2" ) across:2
|
|
dropdownlist dlAlphaBlendSource "Blend Source" items:#( "Texture", "Previous", "Diffuse", "Constant" )
|
|
dropdownlist dlAlphaArg0 "Arg0" items:#( "Texture", "Previous", "Diffuse", "Constant", "Texture" ) across:6
|
|
dropdownlist dlAlphaArg0Operand "Oper0" items:#( "RGB", "Inv RGB", "Alpha", "Inv Alpha" )
|
|
dropdownlist dlAlphaArg1 "Arg1" items:#( "Previous", "Diffuse", "Constant", "Texture" )
|
|
dropdownlist dlAlphaArg1Operand "Oper1" items:#( "RGB", "Inv RGB", "Alpha", "Inv Alpha" )
|
|
dropdownlist dlAlphaArg2 "Arg2" items:#( "Previous", "Diffuse", "Constant", "Texture" )
|
|
dropdownlist dlAlphaArg2Operand "Oper2" items:#( "RGB", "Inv RGB", "Alpha", "Inv Alpha" )
|
|
)
|
|
group "Extended"
|
|
(
|
|
dropdownlist dlTextureShader "Texture Shader" items:#( "Disable", "TextureOff", "FetchTexture", "PassThrough", "CullFragment", "OffsetTexture", "OffsetTextureScale", "DependentARTexture", "DependentGBTexture", "DP3", "DP3Texture2D", "DP3CubeMap", "DP3ReflectCubeMap", "DP3ConstEyeReflectCubeMap", "DP3DiffuseCubeMap", "DP3DepthReplace" ) width:100 across:2
|
|
ColorPicker cpConstant "Constant Color" align:#right height:40
|
|
Label ldConstantAlpha "Constant Alpha" align:#left across:2
|
|
Spinner sdConstantAlpha "" range:[0,255,255] type:#integer scale:1 align:#left width:50
|
|
)
|
|
|
|
fn updateUI update =
|
|
(
|
|
if (version >= 4) then
|
|
(
|
|
-- update droplist
|
|
if update == true then
|
|
(
|
|
dlRgbOperation.selection = iRgbOperation_4
|
|
dlRgbBlendSource.selection = iRgbBlendSource_4
|
|
dlRgbArg0.selection = iRgbArg0_4
|
|
dlRgbArg1.selection = iRgbArg1_4
|
|
dlRgbArg2.selection = iRgbArg1_4
|
|
dlRgbArg0Operand.selection = iRgbArg0Operand_4
|
|
dlRgbArg1Operand.selection = iRgbArg1Operand_4
|
|
dlRgbArg2Operand.selection = iRgbArg1Operand_4
|
|
dlAlphaOperation.selection = iAlphaOperation_4
|
|
dlAlphaBlendSource.selection = iAlphaBlendSource_4
|
|
dlAlphaArg0.selection = iAlphaArg0_4
|
|
dlAlphaArg1.selection = iAlphaArg1_4
|
|
dlAlphaArg2.selection = iAlphaArg1_4
|
|
dlAlphaArg0Operand.selection = iAlphaArg0Operand_4
|
|
dlAlphaArg1Operand.selection = iAlphaArg1Operand_4
|
|
dlAlphaArg2Operand.selection = iAlphaArg1Operand_4
|
|
dlTextureShader.selection = iTextureShader_4
|
|
)
|
|
else
|
|
(
|
|
iRgbOperation_4 = dlRgbOperation.selection
|
|
iRgbBlendSource_4 = dlRgbBlendSource.selection
|
|
iRgbArg0_4 = dlRgbArg0.selection
|
|
iRgbArg1_4 = dlRgbArg1.selection
|
|
iRgbArg2_4 = dlRgbArg2.selection
|
|
iRgbArg0Operand_4 = dlRgbArg0Operand.selection
|
|
iRgbArg1Operand_4 = dlRgbArg1Operand.selection
|
|
iRgbArg2Operand_4 = dlRgbArg2Operand.selection
|
|
iAlphaOperation_4 = dlAlphaOperation.selection
|
|
iAlphaBlendSource_4 = dlAlphaBlendSource.selection
|
|
iAlphaArg0_4 = dlAlphaArg0.selection
|
|
iAlphaArg1_4 = dlAlphaArg1.selection
|
|
iAlphaArg2_4 = dlAlphaArg2.selection
|
|
iAlphaArg0Operand_4 = dlAlphaArg0Operand.selection
|
|
iAlphaArg1Operand_4 = dlAlphaArg1Operand.selection
|
|
iAlphaArg2Operand_4 = dlAlphaArg2Operand.selection
|
|
iTextureShader_4 = dlTextureShader.selection
|
|
)
|
|
|
|
cpConstant.enabled = bEnableSlot_4 and bNormalShader
|
|
dlRgbOperation.enabled = bEnableSlot_4 and bNormalShader
|
|
dlRgbBlendSource.enabled = (bEnableSlot_4 == true) and (iRgbOperation_4 == 5) and bNormalShader
|
|
dlRgbArg0.enabled = bEnableSlot_4 and bNormalShader
|
|
dlRgbArg1.enabled = bEnableSlot_4 and bNormalShader
|
|
dlRgbArg2.enabled = bEnableSlot_4 and bNormalShader and (iRgbOperation_4 == 6)
|
|
dlRgbArg0Operand.enabled = bEnableSlot_4 and bNormalShader
|
|
dlRgbArg1Operand.enabled = bEnableSlot_4 and bNormalShader
|
|
dlRgbArg2Operand.enabled = dlRgbArg2.enabled
|
|
dlAlphaOperation.enabled = bEnableSlot_4 and bNormalShader
|
|
dlAlphaBlendSource.enabled = (bEnableSlot_4 == true) and (iAlphaOperation_4 == 5) and bNormalShader
|
|
dlAlphaArg0.enabled = bEnableSlot_4 and bNormalShader
|
|
dlAlphaArg1.enabled = bEnableSlot_4 and bNormalShader
|
|
dlAlphaArg2.enabled = bEnableSlot_4 and bNormalShader and (iAlphaOperation_4 == 6)
|
|
dlAlphaArg0Operand.enabled = bEnableSlot_4 and bNormalShader
|
|
dlAlphaArg1Operand.enabled = bEnableSlot_4 and bNormalShader
|
|
dlAlphaArg2Operand.enabled = dlAlphaArg2.enabled
|
|
dlTextureShader.enabled = bEnableSlot_4 and bNormalShader
|
|
sdConstantAlpha.enabled = bEnableSlot_4 and bNormalShader
|
|
)
|
|
)
|
|
|
|
on NelMultitextureSlot4 open do
|
|
(
|
|
updateUI true
|
|
)
|
|
|
|
on dlRgbOperation selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaOperation selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbArg0Operand selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbArg1Operand selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbArg2Operand selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaArg0Operand selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaArg1Operand selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaArg2Operand selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlMappingCoordinates selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlTextureShader selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbBlendSource selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbArg0 selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbArg1 selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlRgbArg2 selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaBlendSource selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaArg0 selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaArg1 selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
|
|
on dlAlphaArg2 selected newState do
|
|
(
|
|
updateUI false
|
|
)
|
|
)
|
|
|
|
fn loadShader shader =
|
|
(
|
|
-- Disable all slot
|
|
bEnableSlot_1 = false
|
|
bEnableSlot_2 = false
|
|
bEnableSlot_3 = false
|
|
bEnableSlot_4 = false
|
|
bEnableSlot_5 = false
|
|
bEnableSlot_6 = false
|
|
bEnableSlot_7 = false
|
|
bEnableSlot_8 = false
|
|
|
|
if shader == ShaderSingleTexture then
|
|
(
|
|
-- Single texture
|
|
bEnableSlot_1 = true
|
|
iRgbOperation_1 = OptorModulate
|
|
iRgbArg0_1 = Src0Texture
|
|
iRgbArg1_1 = Src1Diffuse
|
|
iRgbArg0Operand_1 = OprdRGB
|
|
iRgbArg1Operand_1 = OprdRGB
|
|
iAlphaOperation_1 = OptorModulate
|
|
iAlphaArg0_1 = Src0Texture
|
|
iAlphaArg1_1 = Src1Diffuse
|
|
iAlphaArg0Operand_1 = OprdAlpha
|
|
iAlphaArg1Operand_1 = OprdAlpha
|
|
iTextureShader_1 = TextureShaderDisable
|
|
)
|
|
else if shader == ShaderAddTwoTextures then
|
|
(
|
|
-- Two texture texture
|
|
|
|
bEnableSlot_1 = true
|
|
iRgbOperation_1 = OptorModulate
|
|
iRgbArg0_1 = Src0Texture
|
|
iRgbArg1_1 = Src1Diffuse
|
|
iRgbArg0Operand_1 = OprdRGB
|
|
iRgbArg1Operand_1 = OprdRGB
|
|
iAlphaOperation_1 = OptorModulate
|
|
iAlphaArg0_1 = Src0Texture
|
|
iAlphaArg1_1 = Src1Diffuse
|
|
iAlphaArg0Operand_1 = OprdAlpha
|
|
iAlphaArg1Operand_1 = OprdAlpha
|
|
iTextureShader_1 = TextureShaderDisable
|
|
|
|
bEnableSlot_2 = true
|
|
iRgbOperation_2 = OptorAdd
|
|
iRgbArg0_2 = Src0Texture
|
|
iRgbArg1_2 = Src1Previous
|
|
iRgbArg0Operand_2 = OprdRGB
|
|
iRgbArg1Operand_2 = OprdRGB
|
|
iAlphaOperation_2 = OptorModulate
|
|
iAlphaArg0_2 = Src0Texture
|
|
iAlphaArg1_2 = Src1Diffuse
|
|
iAlphaArg0Operand_2 = OprdAlpha
|
|
iAlphaArg1Operand_2 = OprdAlpha
|
|
iTextureShader_2 = TextureShaderDisable
|
|
)
|
|
else if shader == ShaderMulTwoTextures then
|
|
(
|
|
-- Two texture texture
|
|
|
|
bEnableSlot_1 = true
|
|
iRgbOperation_1 = OptorModulate
|
|
iRgbArg0_1 = Src0Texture
|
|
iRgbArg1_1 = Src1Diffuse
|
|
iRgbArg0Operand_1 = OprdRGB
|
|
iRgbArg1Operand_1 = OprdRGB
|
|
iAlphaOperation_1 = OptorModulate
|
|
iAlphaArg0_1 = Src0Texture
|
|
iAlphaArg1_1 = Src1Diffuse
|
|
iAlphaArg0Operand_1 = OprdAlpha
|
|
iAlphaArg1Operand_1 = OprdAlpha
|
|
iTextureShader_1 = TextureShaderDisable
|
|
|
|
bEnableSlot_2 = true
|
|
iRgbOperation_2 = OptorModulate
|
|
iRgbArg0_2 = Src0Texture
|
|
iRgbArg1_2 = Src1Previous
|
|
iRgbArg0Operand_2 = OprdRGB
|
|
iRgbArg1Operand_2 = OprdRGB
|
|
iAlphaOperation_2 = OptorModulate
|
|
iAlphaArg0_2 = Src0Texture
|
|
iAlphaArg1_2 = Src1Diffuse
|
|
iAlphaArg0Operand_2 = OprdAlpha
|
|
iAlphaArg1Operand_2 = OprdAlpha
|
|
iTextureShader_2 = TextureShaderDisable
|
|
)
|
|
else if shader == ShaderBlendTwoTextures then
|
|
(
|
|
-- Two texture texture
|
|
|
|
bEnableSlot_1 = true
|
|
iRgbOperation_1 = OptorModulate
|
|
iRgbArg0_1 = Src0Texture
|
|
iRgbArg1_1 = Src1Diffuse
|
|
iRgbArg0Operand_1 = OprdRGB
|
|
iRgbArg1Operand_1 = OprdRGB
|
|
iAlphaOperation_1 = OptorModulate
|
|
iAlphaArg0_1 = Src0Texture
|
|
iAlphaArg1_1 = Src1Diffuse
|
|
iAlphaArg0Operand_1 = OprdAlpha
|
|
iAlphaArg1Operand_1 = OprdAlpha
|
|
iTextureShader_1 = TextureShaderDisable
|
|
|
|
bEnableSlot_2 = true
|
|
iRgbOperation_2 = OptorBlend
|
|
iRgbBlendSource_2 = SrcBlendPrevious
|
|
iRgbArg0_2 = Src0Texture
|
|
iRgbArg1_2 = Src1Previous
|
|
iRgbArg0Operand_2 = OprdRGB
|
|
iRgbArg1Operand_2 = OprdRGB
|
|
iAlphaOperation_2 = OptorReplace
|
|
iAlphaArg0_2 = Src0Texture
|
|
iAlphaArg1_2 = Src1Diffuse
|
|
iAlphaArg0Operand_2 = OprdAlpha
|
|
iAlphaArg1Operand_2 = OprdAlpha
|
|
iTextureShader_2 = TextureShaderDisable
|
|
)
|
|
else if shader == ShaderBlendMask then
|
|
(
|
|
-- Two texture texture
|
|
|
|
bEnableSlot_1 = true
|
|
iRgbOperation_1 = OptorModulate
|
|
iRgbArg0_1 = Src0Texture
|
|
iRgbArg1_1 = Src1Diffuse
|
|
iRgbArg0Operand_1 = OprdRGB
|
|
iRgbArg1Operand_1 = OprdRGB
|
|
iAlphaOperation_1 = OptorReplace
|
|
iAlphaArg0_1 = Src0Texture
|
|
iAlphaArg0Operand_1 = OprdAlpha
|
|
iTextureShader_1 = TextureShaderDisable
|
|
|
|
bEnableSlot_2 = true
|
|
iRgbOperation_2 = OptorReplace
|
|
iRgbArg0_2 = Src0Previous
|
|
iRgbArg0Operand_2 = OprdRGB
|
|
iAlphaOperation_2 = OptorModulate
|
|
iAlphaArg0_2 = Src0Texture
|
|
iAlphaArg1_2 = Src1Diffuse
|
|
iAlphaArg0Operand_2 = OprdAlpha
|
|
iAlphaArg1Operand_2 = OprdAlpha
|
|
iTextureShader_2 = TextureShaderDisable
|
|
)
|
|
else if shader == ShaderMixTwoTextures then
|
|
(
|
|
-- Two texture texture
|
|
|
|
bEnableSlot_1 = true
|
|
iRgbOperation_1 = OptorModulate
|
|
iRgbArg0_1 = Src0Texture
|
|
iRgbArg1_1 = Src1Diffuse
|
|
iRgbArg0Operand_1 = OprdRGB
|
|
iRgbArg1Operand_1 = OprdRGB
|
|
iAlphaOperation_1 = OptorModulate
|
|
iAlphaArg0_1 = Src0Texture
|
|
iAlphaArg0_2 = Src1Diffuse
|
|
iAlphaArg0Operand_1 = OprdAlpha
|
|
iAlphaArg1Operand_1 = OprdAlpha
|
|
iTextureShader_1 = TextureShaderDisable
|
|
|
|
bEnableSlot_2 = true
|
|
iRgbOperation_2 = OptorBlend
|
|
iRgbBlendSource_2 = SrcBlendConstant
|
|
iRgbArg0_2 = Src0Texture
|
|
iRgbArg1_2 = Src1Previous
|
|
iRgbArg0Operand_2 = OprdRGB
|
|
iAlphaOperation_2 = OptorBlend
|
|
iAlphaBlendSource_2 = SrcBlendConstant
|
|
iAlphaArg0_2 = Src0Texture
|
|
iAlphaArg1_2 = Src1Previous
|
|
iAlphaArg0Operand_2 = OprdAlpha
|
|
iAlphaArg1Operand_2 = OprdAlpha
|
|
iTextureShader_2 = TextureShaderDisable
|
|
iConstantAlpha_2 = 127
|
|
)
|
|
|
|
-- Update the user interface
|
|
globalUpdateUI true
|
|
)
|
|
|
|
on load do
|
|
(
|
|
-- Trap Patch
|
|
if version >= 4 and version < 14 then
|
|
(
|
|
if (delegate.DiffuseMap != undefined) and (tTexture_1 == undefined) then
|
|
(
|
|
tTexture_1 = delegate.DiffuseMap
|
|
)
|
|
)
|
|
|
|
-- Update to version 4 ?
|
|
if updateToVersion4 == true then
|
|
(
|
|
|
|
-- Water
|
|
if bWater == true then
|
|
(
|
|
-- Shader Type
|
|
iShaderType = ShaderWater
|
|
|
|
tTexture_1 = delegate.ReflectionMap
|
|
tTexture_2 = delegate.RefractionMap
|
|
tTexture_3 = delegate.OpacityMap
|
|
tTexture_4 = delegate.FilterMap
|
|
tTexture_5 = delegate.BumpMap
|
|
tTexture_6 = delegate.DisplacementMap
|
|
tTexture_7 = delegate.DiffuseMap
|
|
|
|
bEnableSlot_1 = delegate.ReflectionMapEnable
|
|
bEnableSlot_2 = delegate.RefractionMapEnable
|
|
bEnableSlot_3 = delegate.OpacityMapEnable
|
|
bEnableSlot_4 = delegate.FilterMapEnable
|
|
bEnableSlot_5 = delegate.BumpMapEnable
|
|
bEnableSlot_6 = delegate.DisplacementMapEnable
|
|
bEnableSlot_7 = delegate.DiffuseMapEnable
|
|
)
|
|
else
|
|
(
|
|
-- Simple texture mode
|
|
tTexture_1 = delegate.DiffuseMap
|
|
bEnableSlot_1 = delegate.DiffuseMapEnable
|
|
|
|
-- Lightmap ?
|
|
if bLightmap == true then
|
|
(
|
|
-- Shader Type
|
|
iShaderType = ShaderLightmap
|
|
)
|
|
else
|
|
(
|
|
if ((delegate.SpecularMapEnable == true) and (delegate.SpecularMap != undefined)) then
|
|
(
|
|
-- Shader specular
|
|
iShaderType = ShaderSpecular
|
|
|
|
-- Specular map
|
|
tTexture_2 = delegate.SpecularMap
|
|
bEnableSlot_2 = true
|
|
)
|
|
else
|
|
(
|
|
-- Shader Type
|
|
iShaderType = ShaderNormal
|
|
loadShader ShaderSingleTexture
|
|
)
|
|
|
|
-- Alpha blend ?
|
|
bAlphaBlend = (bAlphaTest == false) and ((delegate.opacity < 100) or (delegate.OpacityMap != undefined) or bAlphaVertex)
|
|
|
|
-- Alpha operator
|
|
if (delegate.opacityType == 0) then
|
|
(
|
|
-- Blend
|
|
iBlendSrcFunc = BlendSrcAlpha
|
|
iBlendDestFunc = BlendInvSrcAlpha
|
|
)
|
|
else if (delegate.opacityType == 2) then
|
|
(
|
|
-- Additive
|
|
iBlendSrcFunc = BlendOne
|
|
iBlendDestFunc = BlendOne
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
updateToVersion4 = false
|
|
|
|
if updateToVersion14 == true then
|
|
(
|
|
bTwoSided = delegate.twoSided
|
|
cAmbient = delegate.ambient
|
|
cDiffuse = delegate.diffuse
|
|
pOpacity = delegate.opacity
|
|
cSpecular = delegate.specular
|
|
pSpecularLevel = delegate.specularLevel
|
|
pGlossiness = delegate.glossiness
|
|
cSelfIllumColor = delegate.selfIllumColor
|
|
pSelfIllumAmount = delegate.selfIllumAmount
|
|
bUseSelfIllumColor = delegate.useSelfIllumColor
|
|
)
|
|
|
|
updateToVersion14 = false
|
|
|
|
)
|
|
|
|
on create do
|
|
(
|
|
-- Single shader
|
|
loadShader ShaderSingleTexture
|
|
)
|
|
|
|
on update do
|
|
(
|
|
-- Initialise V3 fields.
|
|
if (version < 3) and (version >= 1) then
|
|
(
|
|
-- No color vertex
|
|
bColorVertex = false
|
|
|
|
if bLightMap == true then
|
|
bColorVertex = true
|
|
if bUnlighted == true then
|
|
bColorVertex = true
|
|
|
|
-- No alpha vertex
|
|
bAlphaVertex = false
|
|
iAlphaVertexChannel = 0
|
|
)
|
|
|
|
-- Initialise V4 fields.
|
|
if (version < 4) and (version >= 1) then
|
|
(
|
|
updateToVersion4 = true
|
|
)
|
|
|
|
if (version < 14) and (version >= 1) then
|
|
(
|
|
updateToVersion14 = true
|
|
)
|
|
)
|
|
|
|
fn globalUpdateUI update =
|
|
(
|
|
nelBasicParameters.updateUI update
|
|
NelParams.updateUI update
|
|
NelTexture.updateUI update
|
|
NelMultitextureSlot1.updateUI update
|
|
NelMultitextureSlot2.updateUI update
|
|
NelMultitextureSlot3.updateUI update
|
|
NelMultitextureSlot4.updateUI update
|
|
)
|
|
|
|
fn updateTextureName =
|
|
(
|
|
-- Set the name
|
|
if (tTexture_1 != undefined) then
|
|
(
|
|
if (classof tTexture_1) == Bitmaptexture then
|
|
(
|
|
NelTexture.mbTexture_1.text = (tTexture_1.name+" ("+(filenameFromPath (tTexture_1.filename))+")")
|
|
)
|
|
else
|
|
(
|
|
NelTexture.mbTexture_1.text = (tTexture_1.name+" ("+((classof tTexture_1) as string)+")")
|
|
)
|
|
)
|
|
else
|
|
(
|
|
NelTexture.mbTexture_1.text = "None"
|
|
)
|
|
if (tTexture_2 != undefined) then
|
|
(
|
|
if (classof tTexture_2) == Bitmaptexture then
|
|
(
|
|
NelTexture.mbTexture_2.text = (tTexture_2.name+" ("+(filenameFromPath (tTexture_2.filename))+")")
|
|
)
|
|
else
|
|
(
|
|
NelTexture.mbTexture_2.text = (tTexture_2.name+" ("+((classof tTexture_2) as string)+")")
|
|
)
|
|
)
|
|
else
|
|
(
|
|
if (iShaderType == ShaderUserColor) and (tTexture_1 != undefined) and ((classof tTexture_1) == Bitmaptexture) then
|
|
(
|
|
NelTexture.mbTexture_2.text = (getFilenameFile (filenameFromPath (tTexture_1.filename))) + "_usercolor" + (getFilenameType (filenameFromPath (tTexture_1.filename)))
|
|
)
|
|
else
|
|
(
|
|
NelTexture.mbTexture_2.text = "None"
|
|
)
|
|
)
|
|
if (tTexture_3 != undefined) then
|
|
(
|
|
if (classof tTexture_3) == Bitmaptexture then
|
|
(
|
|
NelTexture.mbTexture_3.text = (tTexture_3.name+" ("+(filenameFromPath (tTexture_3.filename))+")")
|
|
)
|
|
else
|
|
(
|
|
NelTexture.mbTexture_3.text = (tTexture_3.name+" ("+((classof tTexture_3) as string)+")")
|
|
)
|
|
)
|
|
else
|
|
(
|
|
NelTexture.mbTexture_3.text = "None"
|
|
)
|
|
if (tTexture_4 != undefined) then
|
|
(
|
|
if (classof tTexture_4) == Bitmaptexture then
|
|
(
|
|
NelTexture.mbTexture_4.text = (tTexture_4.name+" ("+(filenameFromPath (tTexture_4.filename))+")")
|
|
)
|
|
else
|
|
(
|
|
NelTexture.mbTexture_4.text = (tTexture_4.name+" ("+((classof tTexture_4) as string)+")")
|
|
)
|
|
)
|
|
else
|
|
(
|
|
NelTexture.mbTexture_4.text = "None"
|
|
)
|
|
if (tTexture_5 != undefined) then
|
|
(
|
|
if (classof tTexture_5) == Bitmaptexture then
|
|
(
|
|
NelTexture.mbTexture_5.text = (tTexture_5.name+" ("+(filenameFromPath (tTexture_5.filename))+")")
|
|
)
|
|
else
|
|
(
|
|
NelTexture.mbTexture_5.text = (tTexture_5.name+" ("+((classof tTexture_5) as string)+")")
|
|
)
|
|
)
|
|
else
|
|
(
|
|
NelTexture.mbTexture_5.text = "None"
|
|
)
|
|
if (tTexture_6 != undefined) then
|
|
(
|
|
if (classof tTexture_6) == Bitmaptexture then
|
|
(
|
|
NelTexture.mbTexture_6.text = (tTexture_6.name+" ("+(filenameFromPath (tTexture_6.filename))+")")
|
|
)
|
|
else
|
|
(
|
|
NelTexture.mbTexture_6.text = (tTexture_6.name+" ("+((classof tTexture_6) as string)+")")
|
|
)
|
|
)
|
|
else
|
|
(
|
|
NelTexture.mbTexture_6.text = "None"
|
|
)
|
|
if (tTexture_7 != undefined) then
|
|
(
|
|
if (classof tTexture_7) == Bitmaptexture then
|
|
(
|
|
NelTexture.mbTexture_7.text = (tTexture_7.name+" ("+(filenameFromPath (tTexture_7.filename))+")")
|
|
)
|
|
else
|
|
(
|
|
NelTexture.mbTexture_7.text = (tTexture_7.name+" ("+((classof tTexture_7) as string)+")")
|
|
)
|
|
)
|
|
else
|
|
(
|
|
NelTexture.mbTexture_7.text = "None"
|
|
)
|
|
if (tTexture_8 != undefined) then
|
|
(
|
|
if (classof tTexture_8) == Bitmaptexture then
|
|
(
|
|
NelTexture.mbTexture_8.text = (tTexture_8.name+" ("+(filenameFromPath (tTexture_8.filename))+")")
|
|
)
|
|
else
|
|
(
|
|
NelTexture.mbTexture_8.text = (tTexture_8.name+" ("+((classof tTexture_8) as string)+")")
|
|
)
|
|
)
|
|
else
|
|
(
|
|
NelTexture.mbTexture_8.text = "None"
|
|
)
|
|
)
|
|
|
|
)
|