View Full Version : [Query] Vraylight to Spline Rectangle ... Will I be able ?
seoul 09-18-2010, 12:56 PM Spline Rectangle ->>> Vraylight....
|
|
plastic
09-19-2010, 09:06 AM
easy, just get the position of the vray light and the dimension properties, then create a new rectangle shape with those dimensions.
DaveWortley
09-20-2010, 12:18 PM
Select your Vray Light plane.
Rectangle length:($.size1 * 2) width:($.size0 * 2) cornerRadius:0 transform:$.transform
seoul
09-25-2010, 03:18 AM
http://uvwxyz.wo.to/0001.jpg
Multi Select your Spline VrayLight
VrayLight to Edittable Spline
plastic
09-25-2010, 06:36 AM
hehe...let's see if I say right:
for i in selection where (classOf i==VRayLight) do if i.type==0 do rectangle length:(i.size1 * 2) width:(i.size0 * 2) cornerRadius:0 transform:i.transform
seoul
09-25-2010, 11:48 AM
http://uvwxyz.wo.to/0002.jpg
Spline => VRayLight
HornBerger
09-25-2010, 12:29 PM
try this..
(
newselection = #()
for i in selection do
(
if classof i == rectangle do
(
light = vraylight()
light.size0 = i.width/2
light.size1 = i.length/2
light.transform = i.transform
append newselection light
)
)
deselect $*
select newselection
)
seoul
09-25-2010, 02:42 PM
http://uvwxyz.wo.to/0003.jpg
< x > Multi Select Rectangle -> VRayLight
< o > Multi Select Editable Spline -> VRayLight
HornBerger
09-25-2010, 04:24 PM
here's a quick way of doing it..
(
try (delete $vraylightfromsplineshape*) catch()
newselection = #()
for i in selection do
(
if (classof i) == splineshape do
(
extrudeMod = extrude amount:0
addmodifier i extrudeMod
light = vraylight()
light.type = 3
light.mesh_source = i
light.transform = i.transform
light.multiplier = 2
--light.mesh_flip = false
--light.mesh_flip = true
light.doubleSided = true
light.name = uniquename "VrayLightFromSplineShape"
deletemodifier i extrudeMod
append newselection light
)
)
deselect $*
select newselection
)
seoul
09-25-2010, 05:42 PM
http://uvwxyz.wo.to/0004.jpg
ERROR...
HornBerger
09-25-2010, 06:01 PM
works fine for me.. hmm maybe its because of version difference (select a vray light and type show $ in the listener and paste the result here)
http://img828.imageshack.us/img828/4703/vlights.jpg
seoul
09-25-2010, 06:22 PM
Version is used...
3dsmax 8.0 & Vray RC3
HornBerger
09-25-2010, 07:34 PM
i think rc3 didn't have mesh support for vray lights.. anyways try this.. maybe it will work..
(
newselection = #()
try (delete $vraylightfromsplineshape*) catch()
for j in selection do
(
if classof j == splineshape do
(
xArr = #()
yArr = #()
zArr = #()
for k = 1 to (numsplines j) do
(
for i = 1 to (numknots j k) do
(
xArr[i] = (getknotpoint j k i).x
yArr[i] = (getknotpoint j k i).y
zArr[i] = (getknotpoint j 1 i).z
)
shapeWidth = (amax xArr) - (amin xArr)
shapeLength = (amax yArr) - (amin yArr)
vlight = vraylight()
vlight.size0 = shapeWidth /2
vlight.size1 = shapeLength/2
vlight.transform = j.transform
vlight.pos = [(((amax xArr) + (amin xArr))/2),(((amax yArr) + (amin yArr))/2),(((amax zArr) + (amin zArr))/2)]
vlight.name = uniquename "VraylightFromSplineShape"
append newselection vlight
)
)
)
deselect $*
select newselection
)
HornBerger
09-25-2010, 10:33 PM
here's a more sophisticated approach (the advantage of this script is it calculates the correct transformation matrix irrespective of the transformations applied to the pivot or the spline sub-object of the Spline shape) the script assumes that all the spline shapes are "rectangular" i.e adjacent sides are perpendicular and the shape has 4 knot points :
(
global o,a,b,c
try (delete $vrayLightFromSplineShape*) catch()
newSelection = #()
fn computeTm v1 v2 ss =
(
n = normalize (cross (normalize v1) (normalize v2))
maxX = amax o.x a.x b.x c.x
minX = amin o.x a.x b.x c.x
maxY = amax o.y a.y b.y c.y
minY = amin o.y a.y b.y c.y
maxZ = amax o.z a.z b.z c.z
minZ = amin o.z a.z b.z c.z
center = [(maxX + minX)/2 , (maxY + minY)/2, (maxZ + minZ)/2]
tm = matrix3 (normalize v1) (normalize v2) n center
shapewidth = length v1
shapelength = length v2
Vlight = vraylight size0:(shapewidth/2) size1:(shapelength/2) transform:tm name:(uniqueName "vrayLightFromSplineShape")
append newselection Vlight
)
for i in selection do
(
if ((classOf i) == SplineShape) do
(
for j = 1 to numsplines i do
(
o = getknotpoint i j 1
a = getknotpoint i j 2
b = getknotpoint i j 3
c = getknotpoint i j 4
v1 = (a - o)
v2 = (b - o)
v3 = (c - o)
angle1 = acos (dot (normalize v1) (normalize v2))
angle2 = acos (dot (normalize v1) (normalize v3))
angle3 = acos (dot (normalize v2) (normalize v3))
if ((angle1 as string) == "90.0") do (computeTM v1 v2 i)
if ((angle2 as string) == "90.0") do (computeTM v1 v3 i)
if ((angle3 as string) == "90.0") do (computeTM v2 v3 i)
)
)
)
deselect $*
select newselection
"OK"
)
note: for some reason angle1 == 90.0 always yields false even when angle is 90.0 :S so i had to convert it to string to make the comparison :S
here's a snap :
http://img28.imageshack.us/img28/4703/vlights.jpg
seoul
09-26-2010, 06:07 AM
Thank you very much for your help
plastic ^^
DaveWortley ^^
HornBerger ^^
해결되었습니다..
HornBerger님 앞으로 잘 부탁드리겠습니다. 감사합니다.
HornBerger
09-26-2010, 03:43 PM
glad it worked!
해결되었습니다..
HornBerger님 앞으로 잘 부탁드리겠습니다. 감사합니다.
lol me and my browser (safari) both don't understand korean ;)
CGTalk Moderation
09-26-2010, 03:43 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.
vBulletin v3.0.5, Copyright ©2000-2013, Jelsoft Enterprises Ltd.