Nice to see someone still using DarkBasic classic.
64-bit platforms generally won't run 16 bit software without some jumping through hoops so I imagine that applies to 16 bit graphic modes as well.
Also, I went back to the old post (that I think you are referencing) and looked through Silverman's function for adding alpha:
function add_alpha_to_object(obj,alpha)
`
if object exist(obj)=0
ink rgb(255,255,255),0
c$="object "+str$(obj)+" not exist!"
exit prompt "Error",c$
break c$
end
endif
alpha=alpha+32767
if image exist(alpha)=0
ink rgb(255,255,255),0
c$="image "+str$(alpha)+" not exist!"
exit prompt "Error",c$
break c$
end
endif
obj_alpha=alpha
if object exist(obj_alpha)=1
ink rgb(255,255,255),0
c$="object "+str$(obj_alpha)+" already exist!"
exit prompt "Error",c$
break c$
end
endif
my_mesh=0
repeat
inc my_mesh
if my_mesh=65536
ink rgb(255,255,255),0
exit prompt "Error","no mesh available!"
break "no mesh available!"
end
endif
until mesh exist(my_mesh)=0
`memorize object position + angle
posx#=object position x(obj)
posy#=object position y(obj)
posz#=object position z(obj)
position object obj,0,0,0
`
anx#=object angle x(obj)
any#=object angle y(obj)
anz#=object angle z(obj)
rotate object obj,0,0,0
`ghost object
make mesh from object my_mesh,obj
set object obj,1,1,0
ghost object on obj
`make and ghost object_alpha for alpha texture
make object obj_alpha,my_mesh,alpha
delete mesh my_mesh
`bug with glue object to limb : the object disappears. But change the Z offset of the object seem fix the bug.
fix_bug=2147483647-((object size x(obj_alpha)+object size y(obj_alpha)+object size z(obj_alpha)))
offset limb obj_alpha,0,0,0,fix_bug
set object obj_alpha,1,1,0,0,0,0,0
texture object obj_alpha,alpha
ghost object on obj_alpha,1
`put "rem" before these 2 lines for DBClassic v113
` set object ambient obj_alpha,rgb(255,255,255)
` set object diffuse obj_alpha,rgb(255,255,255)
`
position object obj,posx#,posy#,posz#
rotate object obj,anx#,any#,anz#
glue object to limb obj_alpha,obj,0
endfunction
function get_alpha(alpha)
result=alpha+32767
endfunction result
I hadn't gone through it before but looking at it, it's a good general function for adding the transparency.
I might change it to add material settings in the function call itself so I could pass lighting colors and intensity
function add_alpha_to_object(obj,alpha,maindiffuse,mainambient,transdiffuse,transambient)
Also I would avoid gluing the objects together and just position them simulataneously with the same code. I remember a lot of glitches with gluing objects and also not being able to return the true position of a glued object.
Enjoy your day.