PDA

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.