Is it me or are those sperm?
( from http://www.scratchapixel.com/lessons/3d-advanced-lessons/volume-rendering/volume-rendering-for-artists/ )
What Happens If AI Abundance Actually Arrives?
23 hours ago
Maybe the most boring blog ever... but it's *my* most boring blog ever.
![]() |
http://www.amazon.co.uk/gp/product/B0088K7QUQ/ref=oh_details_o06_s00_i00 |
RSLEXPORT RslFunctionTable RslPublicFunctions(myFunctions,
initStringBuffer,
deleteStringBuffer);
static RslFunction myFunctions[] = {
{ "string appendTx(string)", appendTx, initStringBuffer, deleteStringBuffer },
{ NULL }
GLSL_SHADERS := $(wildcard hwshaders/*.glsl)
GLSL_SHADERSOUT:= $(GLSL_SHADERS:.glsl=.glslo)
%.glslo : %.glsl
@echo $< $@
@rm -rf $@ ; cpp -P $< $@
glsl : $(GLSL_SHADERSOUT)
make glsl
.SILENT: safepub
safepub:
make clean
make
echo
if test -e /some/path/or/other/my.file; \
then \
echo File Exists \
else \
echo Doesn't Exist \
fi
void dPdst( float ss,tt; point PP;
output varying vector dPds;
output varying vector dPdt; )
{
float Dus = Du(ss);
float Dut = Du(tt);
float Dvs = Dv(ss);
float Dvt = Dv(tt);
vector DuP = Du(PP);
vector DvP = Dv(PP);
float det = (Dus*Dvt-Dvs*Dut);
dPds = (DuP*Dvt - DvP*Dut) / det;
dPdt = (DvP*Dus - DuP*Dvs) / det;
}
alias pf "ps -ef | grep \!* | egrep -v 'grep |bin/pf'"
alias rmane 'setenv RMANTREE /opt/pixar/RenderManProServer-\!:1 ; setenv PRMANVER \!:1_64 ; setenv PRMAN_SHADER_PATH ${BUILDROOT}prman-${PRMANVER}/shaders ; setenv PRMAN_DSO_PATH ${BUILDROOT}prman-${PRMANVER} ; echo RMANTREE set to $RMANTREE ; echo PRMANVER set to $PRMANVER ; echo PRMAN_SHADER_PATH set to $PRMAN_SHADER_PATH ; echo PRMAN_DSO_PATH set to $PRMAN_DSO_PATH '
alias rmanv 'env | grep RMAN'
alias ribgrep '~/ribgrepext \!*'
#!/bin/bash
if [ ! $# == 2 ]; then
$RMANTREE/bin/catrib $1 | grep -o -e '[^\"]*\.exr\|[^\"]*\.dsh\|[^\"]*\.shd\|[^\"]*\.ptc\|[^\"]*\.optc\|[^\"]*\.bkm\|[^\"]*\.tex\|[^\"]*\.unk' | sort | uniq
else
$RMANTREE/bin/catrib $1 | grep -o -e [^\"]*\.${2} | sort | uniq
fi
nm -A -C dof.so | grep globalThreadCount
This is useful to track the source of an error message related to a mangled sym table name,
eg.
D02001 {WARNING} TgPathDLOpen: Bad DSO found: dof.so (undefined symbol: _ZN3Imf17globalThreadCountEv)
man nm
will give the manual page
ldd mydso.so
will list the dependencies a dso has. Which is also useful
collection void RIB {
state closed
ribattribute string "shade:transmissionhitmode" {
label "shadeTransmissionHitMode"
default "primitive"
subtype selector
range { "primitive" "primitive"
"shader" "shader"
}
}
}
Breifly (see diagram also):
float S = 1;
point P = transform("world", P);
point E = transform("world", E);
vector I = vtransform("world", I);
if ( ycomp(I) < 0 ) // I.e. point being shaded is closer to ground than the camera
{
// S is some scale value we need to solve to scale I upto;
// I' = P'-E
// ycomp(P') we know is always zero
// therefore we can solve the scale for ycomp and use it to scale I (similar triangles)
// P' = E + I*S;
// so;
// ycomp(E) + ( ycomp(I) * S ) = 0;
S = ( -ycomp(E) / ycomp(I) );
I = vtransform("world", "current", I*S);
// Voila, our new fake (clamped) depth is;
depth = min( length(I), 65535 );
}
else
{
// E.g. plane is upside down, etc.
// Just Set depth to Max ( 65535, which is the largest value our EXR's can store )
depth = 65535;
}
Attribute "grouping" "string membership" ["noRflOccl"]
string $ws = `workspace -q -rd`;
     vector refract( vector I, N; float eta )
     vector faceforward( vector N, I )
     type clamp( type a, min, max )
     type mix( type x, y; float alpha )
     type smoothstep( type min, max, value )